#include <Dominators.h>
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 |
| 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.
1.5.8