LLVM API Documentation
#include <Dominators.h>
Inheritance diagram for llvm::DominanceFrontierBase:
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 (bool isPostDom) | |
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 | addToFrontier (iterator I, BasicBlock *Node) |
void | removeFromFrontier (iterator I, BasicBlock *Node) |
virtual void | print (std::ostream &OS, const Module *=0) const |
Protected Attributes | |
DomSetMapType | Frontiers |
Definition at line 580 of file Dominators.h.
typedef std::set<BasicBlock*> llvm::DominanceFrontierBase::DomSetType |
Definition at line 582 of file Dominators.h.
typedef std::map<BasicBlock*, DomSetType> llvm::DominanceFrontierBase::DomSetMapType |
Definition at line 583 of file Dominators.h.
typedef DomSetMapType::iterator llvm::DominanceFrontierBase::iterator |
Definition at line 592 of file Dominators.h.
typedef DomSetMapType::const_iterator llvm::DominanceFrontierBase::const_iterator |
Definition at line 593 of file Dominators.h.
llvm::DominanceFrontierBase::DominanceFrontierBase | ( | bool | isPostDom | ) | [inline] |
Definition at line 587 of file Dominators.h.
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 589 of file Dominators.h.
References Frontiers.
iterator llvm::DominanceFrontierBase::begin | ( | ) | [inline] |
const_iterator llvm::DominanceFrontierBase::begin | ( | ) | const [inline] |
iterator llvm::DominanceFrontierBase::end | ( | ) | [inline] |
Definition at line 596 of file Dominators.h.
References Frontiers.
Referenced by addBasicBlock(), addToFrontier(), print(), and removeFromFrontier().
const_iterator llvm::DominanceFrontierBase::end | ( | ) | const [inline] |
iterator llvm::DominanceFrontierBase::find | ( | BasicBlock * | B | ) | [inline] |
const_iterator llvm::DominanceFrontierBase::find | ( | BasicBlock * | B | ) | const [inline] |
void llvm::DominanceFrontierBase::addBasicBlock | ( | BasicBlock * | BB, | |
const DomSetType & | frontier | |||
) | [inline] |
Definition at line 601 of file Dominators.h.
References BB, end(), find(), and Frontiers.
Referenced by llvm::SplitCriticalEdge().
void llvm::DominanceFrontierBase::addToFrontier | ( | iterator | I, | |
BasicBlock * | Node | |||
) | [inline] |
void llvm::DominanceFrontierBase::removeFromFrontier | ( | iterator | I, | |
BasicBlock * | Node | |||
) | [inline] |
void DominanceFrontierBase::print | ( | std::ostream & | OS, | |
const Module * | = 0 | |||
) | const [virtual] |
print - Convert to human readable form
Reimplemented from llvm::Pass.
Definition at line 462 of file Dominators.cpp.
References begin(), E, end(), and llvm::WriteAsOperand().
DomSetMapType llvm::DominanceFrontierBase::Frontiers [protected] |
Definition at line 585 of file Dominators.h.
Referenced by addBasicBlock(), begin(), end(), find(), releaseMemory(), llvm::PostDominanceFrontier::runOnFunction(), and llvm::DominanceFrontier::runOnFunction().