Module cranelift_codegen::flowgraph
source · Expand description
A control flow graph represented as mappings of extended basic blocks to their predecessors and successors.
Successors are represented as extended basic blocks while predecessors are represented by basic blocks. Basic blocks are denoted by tuples of EBB and branch/jump instructions. Each predecessor tuple corresponds to the end of a basic block.
Ebb0:
... ; beginning of basic block
...
brz vx, Ebb1 ; end of basic block
... ; beginning of basic block
...
jmp Ebb2 ; end of basic block
Here Ebb1
and Ebb2
would each have a single predecessor denoted as (Ebb0, brz)
and (Ebb0, jmp Ebb2)
respectively.
Structs
A basic block denoted by its enclosing Ebb and last instruction.
The Control Flow Graph maintains a mapping of ebbs to their predecessors
and successors where predecessors are basic blocks and successors are
extended basic blocks.
An iterator over EBB predecessors. The iterator type is
BasicBlock
.Type Definitions
An iterator over EBB successors. The iterator type is
Ebb
.