LLVM API Documentation
#include <Dominators.h>


Public Member Functions | |
| DominanceFrontier () | |
| BasicBlock * | getRoot () const |
| virtual bool | runOnFunction (Function &) |
| virtual void | getAnalysisUsage (AnalysisUsage &AU) const |
| void | splitBlock (BasicBlock *BB) |
| void | changeImmediateDominator (BasicBlock *BB, BasicBlock *NewBB, DominatorTree *DT) |
| const DomSetType & | calculate (const DominatorTree &DT, const DomTreeNode *Node) |
Static Public Attributes | |
| static char | ID = 0 |
Definition at line 1029 of file Dominators.h.
| llvm::DominanceFrontier::DominanceFrontier | ( | ) | [inline] |
Definition at line 1032 of file Dominators.h.
| BasicBlock* llvm::DominanceFrontier::getRoot | ( | ) | const [inline] |
| virtual bool llvm::DominanceFrontier::runOnFunction | ( | Function & | F | ) | [inline, virtual] |
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
Implements llvm::FunctionPass.
Definition at line 1040 of file Dominators.h.
References calculate(), DT, llvm::DominanceFrontierBase::Frontiers, llvm::DominatorTree::getRoots(), and llvm::DominanceFrontierBase::Roots.
| virtual void llvm::DominanceFrontier::getAnalysisUsage | ( | AnalysisUsage & | ) | const [inline, virtual] |
getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. If a pass specifies that it uses a particular analysis result to this function, it can then use the getAnalysis<AnalysisType>() function, below.
Reimplemented from llvm::Pass.
Definition at line 1049 of file Dominators.h.
References llvm::AnalysisUsage::addRequired(), and llvm::AnalysisUsage::setPreservesAll().
| void DominanceFrontier::splitBlock | ( | BasicBlock * | BB | ) |
splitBlock - BB is split and now it has one successor. Update dominance frontier to reflect this change.
Definition at line 74 of file Dominators.cpp.
References llvm::DominanceFrontierBase::addBasicBlock(), llvm::DominanceFrontierBase::addToFrontier(), llvm::Function::begin(), llvm::DominatorTree::dominates(), DT, E, llvm::Function::end(), llvm::DominanceFrontierBase::end(), FI, llvm::DominanceFrontierBase::find(), llvm::TerminatorInst::getNumSuccessors(), llvm::BasicBlock::getParent(), llvm::TerminatorInst::getSuccessor(), llvm::BasicBlock::getTerminator(), PI, llvm::pred_begin(), llvm::pred_end(), and llvm::DominanceFrontierBase::removeFromFrontier().
Referenced by llvm::SplitBlock(), and llvm::SplitBlockPredecessors().
| void llvm::DominanceFrontier::changeImmediateDominator | ( | BasicBlock * | BB, | |
| BasicBlock * | NewBB, | |||
| DominatorTree * | DT | |||
| ) | [inline] |
BasicBlock BB's new dominator is NewBB. Update BB's dominance frontier to reflect this change.
Definition at line 1060 of file Dominators.h.
References llvm::DominatorTree::dominates(), llvm::DominanceFrontierBase::end(), and llvm::DominanceFrontierBase::find().
| const DominanceFrontier::DomSetType & DominanceFrontier::calculate | ( | const DominatorTree & | DT, | |
| const DomTreeNode * | Node | |||
| ) |
Definition at line 203 of file Dominators.cpp.
References BB, llvm::DomTreeNodeBase< NodeT >::begin(), llvm::SmallPtrSet< PtrType, SmallSize >::count(), currentBB, llvm::DomTreeNodeBase< NodeT >::end(), llvm::DominanceFrontierBase::Frontiers, llvm::DomTreeNodeBase< NodeT >::getBlock(), llvm::SmallPtrSet< PtrType, SmallSize >::insert(), NE, parentBB, parentNode, llvm::DominatorTree::properlyDominates(), SE, llvm::succ_begin(), and llvm::succ_end().
Referenced by runOnFunction(), and llvm::PMDataManager::verifyDomInfo().
char DominanceFrontier::ID = 0 [static] |
Definition at line 1031 of file Dominators.h.