image/svg+xml Executedearlier Executedlater Compiled earlier(less specialised) Compiled later(more specialised) Fetchedearlier Fetchedlater Retiredearlier Retiredlater Guard? Fetchcode Retirecode Fetchparent Pass Fail Retirechildren Exception? ... Switch ... Fetchchildren Yes No Default Retireparent profilingcounter The concepts in the diagram exist in memory in two forms:as compiled code, and as a data structure internal to thecompiler.The "switch" doesn't really exist as compiled code; it is theconcatenation of the fetch children's "guard"s.The "exception" test need not really exist; there can be aseparate path for the exceptional case, at the expense ofduplicating the "retire code".The significance of separating the "fetch code" from "retirecode" is that new children are inserted between them. The structure of a specialisation See "specialisation.txt" for more explanation.