ROSE
0.9.6a
|
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. More... | |
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. More... | |
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 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.