Classes | |
| class | CFG |
| A class holding a Control Flow Graph. More... | |
| struct | DataflowCfgFilter |
| Filter which determines which CFG nodes appear in the CFg used to propagate reaching definitions. More... | |
| class | ChildUses |
| Attribute that describes the variables used by a given expression. More... | |
| class | DefsAndUsesTraversal |
| This class collects all the defs and uses associated with each node in the traversed CFG. More... | |
| struct | FunctionFilter |
| This filter determines which function declarations get processed in the analysis. More... | |
| class | VarUniqueName |
| Class holding a unique name for a variable. More... | |
| class | VariableReferenceSet |
| Attribute that describes the variables modified by a given expression. More... | |
| class | UniqueNameTraversal |
| Class to traverse the AST and assign unique names to every varRef. More... | |
Functions | |
| template<class CfgNodeT, class CfgEdgeT> | |
| multimap< CfgNodeT, pair< CfgNodeT, CfgEdgeT > > | calculateControlDependence (SgFunctionDefinition *function, const map< CfgNodeT, CfgNodeT > &iPostDominatorMap) |
| template<class CfgNodeT> | |
| set< CfgNodeT > | calculateIteratedDominanceFrontier (const map< CfgNodeT, set< CfgNodeT > > &dominanceFrontiers, const vector< CfgNodeT > &startNodes) |
| Given the dominance frontiers of each node and a set of start nodes, calculate the iterated dominance frontier of the start nodes. | |
| template<class CfgNodeT, class CfgEdgeT> | |
| map< CfgNodeT, set< CfgNodeT > > | calculateDominanceFrontiers (SgFunctionDefinition *func, map< CfgNodeT, CfgNodeT > *iDominatorMap, map< CfgNodeT, CfgNodeT > *iPostDominatorMap) |
| Calculates the dominance frontier for each node in the control flow graph of the given function. | |
| multimap< CfgNodeT, pair<CfgNodeT, CfgEdgeT> > ssa_private::calculateControlDependence | ( | SgFunctionDefinition * | function, | |
| const map< CfgNodeT, CfgNodeT > & | iPostDominatorMap | |||
| ) |
| dominatorTree | map from each node in the dom tree to its childrenn | |
| iDominatorMap | map from each node to its immediate dominator. |
Definition at line 19 of file controlDependence.h.
References SgNode::cfgForBeginning(), VirtualCFG::eckTrue, VirtualCFG::eckUnconditional, and StaticSingleAssignment::getDebugExtra().
| set<CfgNodeT> ssa_private::calculateIteratedDominanceFrontier | ( | const map< CfgNodeT, set< CfgNodeT > > & | dominanceFrontiers, | |
| const vector< CfgNodeT > & | startNodes | |||
| ) |
Given the dominance frontiers of each node and a set of start nodes, calculate the iterated dominance frontier of the start nodes.
Definition at line 21 of file iteratedDominanceFrontier.h.
| map<CfgNodeT, set<CfgNodeT> > ssa_private::calculateDominanceFrontiers | ( | SgFunctionDefinition * | func, | |
| map< CfgNodeT, CfgNodeT > * | iDominatorMap, | |||
| map< CfgNodeT, CfgNodeT > * | iPostDominatorMap | |||
| ) |
Calculates the dominance frontier for each node in the control flow graph of the given function.
| iDominatorMap | map from each node to its immediate dominator | |
| iPostDominatorMap | map from each node to its immediate postdominator |
Definition at line 59 of file iteratedDominanceFrontier.h.
1.4.7