|
Nearly CC
An educational compiler skeleton
|
Forward navigation in the control-flow graph (from predecessors towards successors). More...
#include "dataflow.h"
Public Member Functions | |
| std::shared_ptr< InstructionSequence > | get_start_block (const std::shared_ptr< ControlFlowGraph > &cfg) const |
| Get the "start" block in the ControlFlowGraph, which for a forward analysis is the entry block. More... | |
| const ControlFlowGraph::EdgeList & | get_edges (const std::shared_ptr< ControlFlowGraph > &cfg, std::shared_ptr< InstructionSequence > bb) const |
| Get the control edges for a given block which lead to the "logical successors" of the block. More... | |
| std::shared_ptr< InstructionSequence > | get_block (const Edge *edge) const |
Get the basic block that is a "logical" successor from an Edge returned from the get_edges member function. More... | |
Forward navigation in the control-flow graph (from predecessors towards successors).
This is used for forward analyses.
|
inline |
Get the basic block that is a "logical" successor from an Edge returned from the get_edges member function.
For forward analysis, the returned block is the target block.
| edge | an Edge returned from get_edges() |
|
inline |
Get the control edges for a given block which lead to the "logical successors" of the block.
For a forward analysis, these are the outgoing edges leading to the actual successors.
| cfg | the ControlFlowGraph |
| bb | the basic block |
|
inline |
Get the "start" block in the ControlFlowGraph, which for a forward analysis is the entry block.
| cfg | the ControlFlowGraph |