[][src]Module cranelift_codegen::flowgraph

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

BasicBlock

A basic block denoted by its enclosing Ebb and last instruction.

ControlFlowGraph

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.

PredIter

An iterator over EBB predecessors. The iterator type is BasicBlock.

Type Definitions

SuccIter

An iterator over EBB successors. The iterator type is Ebb.