[][src]Module cranelift_codegen::flowgraph

A control flow graph represented as mappings of basic blocks to their predecessors and successors.

Successors are represented as basic blocks while predecessors are represented by basic blocks. Basic blocks are denoted by tuples of block and branch/jump instructions. Each predecessor tuple corresponds to the end of a basic block.

    Block0:
        ...          ; beginning of basic block

        ...

        brz vx, Block1 ; end of basic block

        ...          ; beginning of basic block

        ...

        jmp Block2     ; end of basic block

Here Block1 and Block2 would each have a single predecessor denoted as (Block0, brz) and (Block0, jmp Block2) respectively.

Structs

BlockPredecessor

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

ControlFlowGraph

The Control Flow Graph maintains a mapping of blocks to their predecessors and successors where predecessors are basic blocks and successors are basic blocks.

PredIter

An iterator over block predecessors. The iterator type is BlockPredecessor.

Type Definitions

SuccIter

An iterator over block successors. The iterator type is Block.