L2Control Flow Graph
This is a control graph. The vertices are L2BasicBlocks, which are connected via their successor and predecessor lists.
Author
Mark van Gulik
Types
L2BasicBlocks can be grouped into zones for better visualization of the control flow graph by the L2ControlFlowGraphVisualizer. This class is instantiated from the ZoneType.createZone factory method.
A categorization of kinds of Zones that will be shown as subgraphs (clusters) by the L2ControlFlowGraphVisualizer.
Properties
Functions
Collect the list of all distinct L2Registers assigned anywhere within this control flow graph.
Visit the blocks of the graph in reverse order, successors before predecessors, ignoring backward branches.
Assert that each of the specified StateFlags has been set.
Assert that each of the specified StateFlags has been cleared.
Clear each of the specified StateFlags.
Remove all L2BasicBlocks, moving them to another L2ControlFlowGraph that is initially empty.
Visit the blocks of the graph in forward order, predecessors before successors, ignoring backward branches.
Produce the final list of instructions. Should only be called after all optimizations have been performed.
Set each of the specified StateFlags.
Answer a visualization of this L2ControlFlowGraph. This is a debug method, intended to be called via evaluation during debugging.
Begin code generation in the given block.