ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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. 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...
 

Function Documentation

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

Definition at line 19 of file controlDependence.h.

References 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 
)

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.

template<class CfgNodeT , class CfgEdgeT >
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.

Parameters
iDominatorMapmap from each node to its immediate dominator
iPostDominatorMapmap from each node to its immediate postdominator

Definition at line 59 of file iteratedDominanceFrontier.h.