Skip to content

DominatorTreesAndDominanceFrontiers::TemplatedDominatorTree

TemplatedDominatorTree constructs a dominator/postdominator tree for a cfg. For the template parameter any cfg following Jeremias interface may be used

Synopsis

Declared in <src/midend/programAnalysis/dominanceAnalysis/DominatorTree.h>

template<typename CFGFilterFunction>
class TemplatedDominatorTree
    : public DominatorForwardBackwardWrapperClass<CFGFilterFunction>

Base Classes

Name

Description

DominatorForwardBackwardWrapperClass<CFGFilterFunction>

This class provides a uniform view of the CFG dissregarding the direction of the CFG‐traversal (forward/backward)

Member Functions

Name

Description

TemplatedDominatorTree [constructor]

constructor for the DT. Head is the start point for the DT construction. DT works for SgFunctionDefintion nodes, unexpected behaviour for non‐SgFunctionDefinition!!!

dominates

dominates overloads

getCFGNodeFromID

getDirectDominatedSet

returns the set of nodes directly dominated by nodeID

getID

getImDomID

get the ImDomID for given SgNode, returns negative for non‐cfg‐node

getSize

writeDot

writes the DT in DOT‐notation to the file given in filename

Private Member Functions

Name

Description

calculateImmediateDominators

calculate immediate dominators

depthFirstSearch

create the dfs‐order of the cfg

eval

helperfunction according to lingauer&tarjan

init

inits the internal structures for idom calculation

link

create the forrest of parents

printInfo

debug output

Private Data Members

Name

Description

ancestor

internal variables

buckets

cfgRoot

dfsParent

internal variables

idToNode

idom

internal variables

nodeToIdMap

semi

internal variables

Created with MrDocs