LLVM API Documentation
#include <Dominators.h>


Public Types | |
| typedef std::set< BasicBlock * > | DomSetType |
| typedef std::map< BasicBlock *, DomSetType > | DomSetMapType |
| typedef DomSetMapType::iterator | iterator |
| typedef DomSetMapType::const_iterator | const_iterator |
Public Member Functions | |
| DominanceFrontierBase (void *ID, bool isPostDom) | |
| const std::vector< BasicBlock * > & | getRoots () const |
| bool | isPostDominator () const |
| virtual void | releaseMemory () |
| iterator | begin () |
| const_iterator | begin () const |
| iterator | end () |
| const_iterator | end () const |
| iterator | find (BasicBlock *B) |
| const_iterator | find (BasicBlock *B) const |
| void | addBasicBlock (BasicBlock *BB, const DomSetType &frontier) |
| void | removeBlock (BasicBlock *BB) |
| removeBlock - Remove basic block BB's frontier. | |
| void | addToFrontier (iterator I, BasicBlock *Node) |
| void | removeFromFrontier (iterator I, BasicBlock *Node) |
| bool | compareDomSet (DomSetType &DS1, const DomSetType &DS2) const |
| bool | compare (DominanceFrontierBase &Other) const |
| virtual void | print (std::ostream &OS, const Module *=0) const |
| void | print (std::ostream *OS, const Module *M=0) const |
| virtual void | dump () |
Protected Attributes | |
| DomSetMapType | Frontiers |
| std::vector< BasicBlock * > | Roots |
| const bool | IsPostDominators |
Definition at line 904 of file Dominators.h.
| typedef std::set<BasicBlock*> llvm::DominanceFrontierBase::DomSetType |
Definition at line 906 of file Dominators.h.
| typedef std::map<BasicBlock*, DomSetType> llvm::DominanceFrontierBase::DomSetMapType |
Definition at line 907 of file Dominators.h.
| typedef DomSetMapType::iterator llvm::DominanceFrontierBase::iterator |
Definition at line 930 of file Dominators.h.
| typedef DomSetMapType::const_iterator llvm::DominanceFrontierBase::const_iterator |
Definition at line 931 of file Dominators.h.
| llvm::DominanceFrontierBase::DominanceFrontierBase | ( | void * | ID, | |
| bool | isPostDom | |||
| ) | [inline] |
Definition at line 914 of file Dominators.h.
| const std::vector<BasicBlock*>& llvm::DominanceFrontierBase::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).
Definition at line 921 of file Dominators.h.
References Roots.
| bool llvm::DominanceFrontierBase::isPostDominator | ( | ) | const [inline] |
isPostDominator - Returns true if analysis based of postdoms
Definition at line 925 of file Dominators.h.
References IsPostDominators.
| virtual void llvm::DominanceFrontierBase::releaseMemory | ( | ) | [inline, virtual] |
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. The default behavior of passes is to hold onto memory for the entire duration of their lifetime (which is the entire compile time). For pipelined passes, this is not a big deal because that memory gets recycled every time the pass is invoked on another program unit. For IP passes, it is more important to free memory when it is unused.
Optionally implement this function to release pass memory when it is no longer used.
Reimplemented from llvm::Pass.
Definition at line 927 of file Dominators.h.
References Frontiers.
| iterator llvm::DominanceFrontierBase::begin | ( | ) | [inline] |
Definition at line 932 of file Dominators.h.
References Frontiers.
Referenced by compare(), print(), and removeBlock().
| const_iterator llvm::DominanceFrontierBase::begin | ( | ) | const [inline] |
| iterator llvm::DominanceFrontierBase::end | ( | ) | [inline] |
Definition at line 934 of file Dominators.h.
References Frontiers.
Referenced by addBasicBlock(), addToFrontier(), llvm::DominanceFrontier::changeImmediateDominator(), CloneDominatorInfo(), compare(), print(), removeBlock(), removeFromFrontier(), llvm::DominanceFrontier::splitBlock(), and llvm::SplitCriticalEdge().
| const_iterator llvm::DominanceFrontierBase::end | ( | ) | const [inline] |
| iterator llvm::DominanceFrontierBase::find | ( | BasicBlock * | B | ) | [inline] |
Definition at line 936 of file Dominators.h.
References Frontiers.
Referenced by addBasicBlock(), llvm::DominanceFrontier::changeImmediateDominator(), CloneDominatorInfo(), compare(), removeBlock(), llvm::DominanceFrontier::splitBlock(), and llvm::SplitCriticalEdge().
| const_iterator llvm::DominanceFrontierBase::find | ( | BasicBlock * | B | ) | const [inline] |
| void llvm::DominanceFrontierBase::addBasicBlock | ( | BasicBlock * | BB, | |
| const DomSetType & | frontier | |||
| ) | [inline] |
Definition at line 939 of file Dominators.h.
References end(), find(), and Frontiers.
Referenced by CloneDominatorInfo(), llvm::DominanceFrontier::splitBlock(), and llvm::SplitCriticalEdge().
| void llvm::DominanceFrontierBase::removeBlock | ( | BasicBlock * | BB | ) | [inline] |
| void llvm::DominanceFrontierBase::addToFrontier | ( | iterator | I, | |
| BasicBlock * | Node | |||
| ) | [inline] |
Definition at line 952 of file Dominators.h.
References end().
Referenced by llvm::DominanceFrontier::splitBlock().
| void llvm::DominanceFrontierBase::removeFromFrontier | ( | iterator | I, | |
| BasicBlock * | Node | |||
| ) | [inline] |
Definition at line 957 of file Dominators.h.
References end().
Referenced by llvm::DominanceFrontier::splitBlock(), and llvm::SplitCriticalEdge().
| bool llvm::DominanceFrontierBase::compareDomSet | ( | DomSetType & | DS1, | |
| const DomSetType & | DS2 | |||
| ) | const [inline] |
| bool llvm::DominanceFrontierBase::compare | ( | DominanceFrontierBase & | Other | ) | const [inline] |
compare - Return true if the other dominance frontier base matches this dominance frontier base. Otherwise return false.
Definition at line 990 of file Dominators.h.
References begin(), compareDomSet(), E, end(), find(), I, and Node.
Referenced by llvm::PMDataManager::verifyDomInfo().
| void DominanceFrontierBase::print | ( | std::ostream & | OS, | |
| const Module * | = 0 | |||
| ) | const [virtual] |
print - Convert to human readable form
Reimplemented from llvm::Pass.
Definition at line 275 of file Dominators.cpp.
References begin(), E, end(), I, and llvm::WriteAsOperand().
| void llvm::DominanceFrontierBase::print | ( | std::ostream * | OS, | |
| const Module * | M = 0 | |||
| ) | const [inline] |
| void DominanceFrontierBase::dump | ( | ) | [virtual] |
Definition at line 286 of file Dominators.cpp.
References llvm::cerr(), and print().
Referenced by llvm::PMDataManager::verifyDomInfo().
DomSetMapType llvm::DominanceFrontierBase::Frontiers [protected] |
Definition at line 909 of file Dominators.h.
Referenced by addBasicBlock(), begin(), llvm::DominanceFrontier::calculate(), end(), find(), releaseMemory(), removeBlock(), llvm::PostDominanceFrontier::runOnFunction(), and llvm::DominanceFrontier::runOnFunction().
std::vector<BasicBlock*> llvm::DominanceFrontierBase::Roots [protected] |
Definition at line 910 of file Dominators.h.
Referenced by llvm::DominanceFrontier::getRoot(), getRoots(), llvm::PostDominanceFrontier::runOnFunction(), and llvm::DominanceFrontier::runOnFunction().
const bool llvm::DominanceFrontierBase::IsPostDominators [protected] |