Template Class TemplatedDominatorTree#
Defined in File DominatorTree.h
Inheritance Relationships#
Base Type#
public DominatorTreesAndDominanceFrontiers::DominatorForwardBackwardWrapperClass< CFGFilterFunction >(Template Class DominatorForwardBackwardWrapperClass)
Class Documentation#
-
template<typename CFGFilterFunction>
class TemplatedDominatorTree : public DominatorTreesAndDominanceFrontiers::DominatorForwardBackwardWrapperClass<CFGFilterFunction># TemplatedDominatorTree constructs a dominator/postdominator tree for a cfg. For the template parameter any cfg following Jeremias interface may be used.
Public Functions
-
void writeDot(char *filename)#
writes the DT in DOT-notation to the file given in filename
-
TemplatedDominatorTree(SgNode *head, Direction d = DominatorForwardBackwardWrapperClass<CFGFilterFunction>::PRE_DOMINATOR)#
constructor for the DT. Head is the start point for the DT construction. DT works for SgFunctionDefintion nodes, unexpected behaviour for non-SgFunctionDefinition!!!
initialize cfg0root correctly
-
inline int getSize()#
-
inline std::set<int> getDirectDominatedSet(int nodeID)#
returns the set of nodes directly dominated by nodeID
-
inline int getImDomID(int i)#
-
inline int getImDomID(VirtualCFG::FilteredCFGNode<CFGFilterFunction> node)#
get the ImDomID for given SgNode, returns negative for non-cfg-node
-
inline bool dominates(int a, int b)#
calculates if a dominates b, i.e. a is on the path from b to the root
-
inline bool dominates(VirtualCFG::FilteredCFGNode<CFGFilterFunction> a, VirtualCFG::FilteredCFGNode<CFGFilterFunction> b)#
returns true if node a dominates node b, see dominates(int a,int b)
-
inline VirtualCFG::FilteredCFGNode<CFGFilterFunction> getCFGNodeFromID(unsigned int id)#
-
inline int getID(VirtualCFG::FilteredCFGNode<CFGFilterFunction> node)#
-
void writeDot(char *filename)#