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 903 of file Dominators.h.
| typedef std::set<BasicBlock*> llvm::DominanceFrontierBase::DomSetType |
Definition at line 905 of file Dominators.h.
| typedef std::map<BasicBlock*, DomSetType> llvm::DominanceFrontierBase::DomSetMapType |
Definition at line 906 of file Dominators.h.
| typedef DomSetMapType::iterator llvm::DominanceFrontierBase::iterator |
Definition at line 929 of file Dominators.h.
| typedef DomSetMapType::const_iterator llvm::DominanceFrontierBase::const_iterator |
Definition at line 930 of file Dominators.h.
| llvm::DominanceFrontierBase::DominanceFrontierBase | ( | void * | ID, | |
| bool | isPostDom | |||
| ) | [inline] |
Definition at line 913 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 920 of file Dominators.h.
References Roots.
| bool llvm::DominanceFrontierBase::isPostDominator | ( | ) | const [inline] |
isPostDominator - Returns true if analysis based of postdoms
Definition at line 924 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 926 of file Dominators.h.
References Frontiers.
| iterator llvm::DominanceFrontierBase::begin | ( | ) | [inline] |
Definition at line 931 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 933 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 935 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 938 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 951 of file Dominators.h.
References end().
Referenced by llvm::DominanceFrontier::splitBlock().
| void llvm::DominanceFrontierBase::removeFromFrontier | ( | iterator | I, | |
| BasicBlock * | Node | |||
| ) | [inline] |
Definition at line 956 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] |
compareDomSet - Return false if two domsets match. Otherwise return true;
Definition at line 964 of file Dominators.h.
Referenced by compare().
| 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 989 of file Dominators.h.
References begin(), compareDomSet(), E, end(), find(), 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(), 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 908 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 909 of file Dominators.h.
Referenced by llvm::DominanceFrontier::getRoot(), getRoots(), llvm::PostDominanceFrontier::runOnFunction(), and llvm::DominanceFrontier::runOnFunction().
const bool llvm::DominanceFrontierBase::IsPostDominators [protected] |