Thu Jun 12 13:06:34 CEST 2008

Compiler Code Hierarchy

During compilation the assembly code (the result of instantiating
macros) is organized in the following hierarchy:

  * A word is a single entry point, represented by a target-word
    structure associated to a chunk, which is a list of consecutive
    assembly code instructions. Code inside a word can only be
    reached through a jump to its label, and is thus not observable
    to the world. Words serve as the unit of code generation (and
    recombination). Any operation on code that doesn't alter
    semantics is legal within a chunk.

  * A chain is a list of words (chunks) with implicit
    fallthrough. Each word indicates a single entry point. Chains
    are terminated by exit points. Chains are the unit of target
    address allocation: each chain can be associated to an address
    independent of other chains. Some chains have fixed addresse

  * The store is a stack of recently constructed chains.