ssa_private Namespace Reference

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.

Function Documentation

template<class CfgNodeT , class CfgEdgeT >
multimap< CfgNodeT, pair<CfgNodeT, CfgEdgeT> > ssa_private::calculateControlDependence ( SgFunctionDefinition function,
const map< CfgNodeT, CfgNodeT > &  iPostDominatorMap 
) [inline]
Parameters:
dominatorTree map from each node in the dom tree to its childrenn
iDominatorMap map from each node to its immediate dominator.

Definition at line 23 of file controlDependence.h.

References SgNode::cfgForBeginning(), VirtualCFG::eckTrue, VirtualCFG::eckUnconditional, and StaticSingleAssignment::getDebugExtra().

template<class CfgNodeT >
set<CfgNodeT> ssa_private::calculateIteratedDominanceFrontier ( const map< CfgNodeT, set< CfgNodeT > > &  dominanceFrontiers,
const vector< CfgNodeT > &  startNodes 
) [inline]

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 25 of file iteratedDominanceFrontier.h.

template<class CfgNodeT , class CfgEdgeT >
map<CfgNodeT, set<CfgNodeT> > ssa_private::calculateDominanceFrontiers ( SgFunctionDefinition func,
map< CfgNodeT, CfgNodeT > *  iDominatorMap,
map< CfgNodeT, CfgNodeT > *  iPostDominatorMap 
) [inline]

Calculates the dominance frontier for each node in the control flow graph of the given function.

Parameters:
iDominatorMap map from each node to its immediate dominator
iPostDominatorMap map from each node to its immediate postdominator

Definition at line 63 of file iteratedDominanceFrontier.h.


Generated on 23 Sep 2015 for ROSE by  doxygen 1.6.1