llvm::DominatorTree Class Reference

#include <Dominators.h>

List of all members.

Public Member Functions

DominatorTreeBase< BasicBlock > & getBase ()
const std::vector< BasicBlock * > & getRoots () const
BasicBlock * getRoot () const
DomTreeNode * getRootNode () const
bool compare (DominatorTree &Other) const
virtual bool runOnFunction (Function &F)
virtual void verifyAnalysis () const
virtual void getAnalysisUsage (AnalysisUsage &AU) const
bool dominates (DomTreeNode *A, DomTreeNode *B) const
bool dominates (const BasicBlock *A, const BasicBlock *B) const
bool dominates (const Instruction *A, const Instruction *B) const
bool properlyDominates (const DomTreeNode *A, const DomTreeNode *B) const
bool properlyDominates (BasicBlock *A, BasicBlock *B) const
BasicBlock * findNearestCommonDominator (BasicBlock *A, BasicBlock *B)
DomTreeNode * operator[] (BasicBlock *BB) const
DomTreeNode * getNode (BasicBlock *BB) const
DomTreeNode * addNewBlock (BasicBlock *BB, BasicBlock *DomBB)
void changeImmediateDominator (BasicBlock *N, BasicBlock *NewIDom)
void changeImmediateDominator (DomTreeNode *N, DomTreeNode *NewIDom)
void eraseNode (BasicBlock *BB)
void splitBlock (BasicBlock *NewBB)
bool isReachableFromEntry (BasicBlock *A)
virtual void releaseMemory ()
virtual void print (raw_ostream &OS, const Module *M=0) const

Public Attributes

DominatorTreeBase< BasicBlock > * DT

Static Public Attributes

static char ID


Detailed Description

DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.

Member Function Documentation

DomTreeNode* llvm::DominatorTree::addNewBlock ( BasicBlock *  BB,
BasicBlock *  DomBB 
) [inline]

addNewBlock - Add a new node to the dominator tree information. This creates a new node as a child of DomBB dominator node,linking it into the children list of the immediate dominator.

void llvm::DominatorTree::changeImmediateDominator ( BasicBlock *  N,
BasicBlock *  NewIDom 
) [inline]

changeImmediateDominator - This method is used to update the dominator tree information when a node's immediate dominator changes.

bool llvm::DominatorTree::compare ( DominatorTree Other  )  const [inline]

compare - Return false if the other dominator tree matches this dominator tree. Otherwise return true.

void llvm::DominatorTree::eraseNode ( BasicBlock *  BB  )  [inline]

eraseNode - Removes a node from the dominator tree. Block must not domiante any other blocks. Removes node from its immediate dominator's children list. Deletes dominator node associated with basic block BB.

BasicBlock* llvm::DominatorTree::findNearestCommonDominator ( BasicBlock *  A,
BasicBlock *  B 
) [inline]

findNearestCommonDominator - Find nearest common dominator basic block for basic block A and B. If there is no such block then return NULL.

DomTreeNode* llvm::DominatorTree::getNode ( BasicBlock *  BB  )  const [inline]

getNode - return the (Post)DominatorTree node for the specified basic block. This is the same as using operator[] on this class.

const std::vector<BasicBlock*>& llvm::DominatorTree::getRoots (  )  const [inline]

getRoots - Return the root blocks of the current CFG. This may include multiple blocks if we are computing post dominators. For forward dominators, this will always be a single block (the entry node).

void llvm::DominatorTree::splitBlock ( BasicBlock *  NewBB  )  [inline]

splitBlock - BB is split and now it has one successor. Update dominator tree to reflect this change.


The documentation for this class was generated from the following file:

Generated on Fri Mar 19 01:41:24 2010 by  doxygen 1.5.8