LLVM API Documentation
#include <DominanceFrontier.h>
Public Member Functions | |
DominanceFrontier () | |
BasicBlock * | getRoot () const |
virtual bool | runOnFunction (Function &) |
virtual void | getAnalysisUsage (AnalysisUsage &AU) const |
const DomSetType & | calculate (const DominatorTree &DT, const DomTreeNode *Node) |
![]() | |
DominanceFrontierBase (char &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 |
iterator | addBasicBlock (BasicBlock *BB, const DomSetType &frontier) |
void | removeBlock (BasicBlock *BB) |
removeBlock - Remove basic block BB's frontier. More... | |
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 (raw_ostream &OS, const Module *=0) const |
void | dump () const |
dump - Dump the dominance frontier to dbgs(). More... | |
![]() | |
FunctionPass (char &pid) | |
Pass * | createPrinterPass (raw_ostream &O, const std::string &Banner) const |
createPrinterPass - Get a function printer pass. More... | |
virtual void | assignPassManager (PMStack &PMS, PassManagerType T) |
virtual PassManagerType | getPotentialPassManagerType () const |
Return what kind of Pass Manager can manage this pass. More... | |
![]() | |
Pass (PassKind K, char &pid) | |
virtual | ~Pass () |
PassKind | getPassKind () const |
virtual const char * | getPassName () const |
AnalysisID | getPassID () const |
getPassID - Return the PassID number that corresponds to this pass. More... | |
virtual bool | doInitialization (Module &) |
virtual bool | doFinalization (Module &) |
void | dump () const |
virtual void | preparePassManager (PMStack &) |
Check if available pass managers are suitable for this pass or not. More... | |
void | setResolver (AnalysisResolver *AR) |
AnalysisResolver * | getResolver () const |
virtual void * | getAdjustedAnalysisPointer (AnalysisID ID) |
virtual ImmutablePass * | getAsImmutablePass () |
virtual PMDataManager * | getAsPMDataManager () |
virtual void | verifyAnalysis () const |
virtual void | dumpPassStructure (unsigned Offset=0) |
template<typename AnalysisType > | |
AnalysisType * | getAnalysisIfAvailable () const |
bool | mustPreserveAnalysisID (char &AID) const |
template<typename AnalysisType > | |
AnalysisType & | getAnalysis () const |
template<typename AnalysisType > | |
AnalysisType & | getAnalysis (Function &F) |
template<typename AnalysisType > | |
AnalysisType & | getAnalysisID (AnalysisID PI) const |
template<typename AnalysisType > | |
AnalysisType & | getAnalysisID (AnalysisID PI, Function &F) |
Static Public Attributes | |
static char | ID = 0 |
Additional Inherited Members | |
![]() | |
typedef std::set< BasicBlock * > | DomSetType |
typedef std::map< BasicBlock *, DomSetType > | DomSetMapType |
typedef DomSetMapType::iterator | iterator |
typedef DomSetMapType::const_iterator | const_iterator |
![]() | |
static const PassInfo * | lookupPassInfo (const void *TI) |
static const PassInfo * | lookupPassInfo (StringRef Arg) |
static Pass * | createPass (AnalysisID ID) |
![]() | |
DomSetMapType | Frontiers |
std::vector< BasicBlock * > | Roots |
const bool | IsPostDominators |
DominanceFrontier Class - Concrete subclass of DominanceFrontierBase that is used to compute a forward dominator frontiers.
Definition at line 156 of file DominanceFrontier.h.
|
inline |
Definition at line 160 of file DominanceFrontier.h.
References llvm::PassRegistry::getPassRegistry(), and llvm::initializeDominanceFrontierPass().
const DominanceFrontier::DomSetType & DominanceFrontier::calculate | ( | const DominatorTree & | DT, |
const DomTreeNode * | Node | ||
) |
Definition at line 41 of file DominanceFrontier.cpp.
References llvm::DomTreeNodeBase< NodeT >::begin(), llvm::SmallPtrSet< PtrType, SmallSize >::count(), llvm::DomTreeNodeBase< NodeT >::end(), llvm::DominanceFrontierBase::Frontiers, llvm::DomTreeNodeBase< NodeT >::getBlock(), llvm::SmallPtrSet< PtrType, SmallSize >::insert(), llvm::A64CC::NE, llvm::DominatorTree::properlyDominates(), llvm::succ_begin(), and llvm::succ_end().
Referenced by runOnFunction().
|
inlinevirtual |
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 179 of file DominanceFrontier.h.
References llvm::AnalysisUsage::addRequired(), and llvm::AnalysisUsage::setPreservesAll().
|
inline |
Definition at line 165 of file DominanceFrontier.h.
References llvm::DominanceFrontierBase::Roots.
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
Implements llvm::FunctionPass.
Definition at line 170 of file DominanceFrontier.h.
References calculate(), llvm::DominanceFrontierBase::Frontiers, llvm::DominatorTree::getRoots(), and llvm::DominanceFrontierBase::Roots.
|
static |
Definition at line 159 of file DominanceFrontier.h.