Vocabularycompiler.cfgClass descriptionFactors representation of a basic block in the Call Flow Graph (CFG). A basic block is a sequence of instructions that always are executed sequentially and doesn't contain any internal branching. It has the following slots:
number | The blocks sequence number. Generated by calling number-blocks. |
successors | A vector of basic blocks that may be executed directly after this block. Most blocks only have one successor but a block that checks where an if-condition should branch to would have two for example. |
predecessors | The opposite of successors -- a vector of basic blocks from which the execution may have arrived into this block. |
instructions | A vector of insn tuples which form the instructions of the basic block. |
kill-block? | The first and the last block in a cfg and all blocks containing ##call instructions are kill blocks. Kill blocks can't be optimized so they are omitted from certain optimization steps. |
height | Block's height as a height-state. What the heights of the block was at entry and how much they were increased in the block. |
replaces | Used by compiler.cfg.stacks.local for local stack analysis. |
peeks | Used by compiler.cfg.stacks.local for local stack analysis. |
kills | Used by compiler.cfg.stacks.local for local stack analysis. |
NotesA basic-block is an
identity-tuple because it is used as a hash table key by the compiler.
Definition