LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Attributes | List of all members
llvm::DominanceFrontier Class Reference

#include <DominanceFrontier.h>

Inheritance diagram for llvm::DominanceFrontier:
Inheritance graph
[legend]
Collaboration diagram for llvm::DominanceFrontier:
Collaboration graph
[legend]

Public Member Functions

 DominanceFrontier ()
 
BasicBlockgetRoot () const
 
virtual bool runOnFunction (Function &)
 
virtual void getAnalysisUsage (AnalysisUsage &AU) const
 
const DomSetTypecalculate (const DominatorTree &DT, const DomTreeNode *Node)
 
- Public Member Functions inherited from llvm::DominanceFrontierBase
 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...
 
- Public Member Functions inherited from llvm::FunctionPass
 FunctionPass (char &pid)
 
PasscreatePrinterPass (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...
 
- Public Member Functions inherited from llvm::Pass
 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)
 
AnalysisResolvergetResolver () const
 
virtual void * getAdjustedAnalysisPointer (AnalysisID ID)
 
virtual ImmutablePassgetAsImmutablePass ()
 
virtual PMDataManagergetAsPMDataManager ()
 
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

- Public Types inherited from llvm::DominanceFrontierBase
typedef std::set< BasicBlock * > DomSetType
 
typedef std::map< BasicBlock
*, DomSetType
DomSetMapType
 
typedef DomSetMapType::iterator iterator
 
typedef
DomSetMapType::const_iterator 
const_iterator
 
- Static Public Member Functions inherited from llvm::Pass
static const PassInfolookupPassInfo (const void *TI)
 
static const PassInfolookupPassInfo (StringRef Arg)
 
static PasscreatePass (AnalysisID ID)
 
- Protected Attributes inherited from llvm::DominanceFrontierBase
DomSetMapType Frontiers
 
std::vector< BasicBlock * > Roots
 
const bool IsPostDominators
 

Detailed Description

DominanceFrontier Class - Concrete subclass of DominanceFrontierBase that is used to compute a forward dominator frontiers.

Definition at line 156 of file DominanceFrontier.h.

Constructor & Destructor Documentation

llvm::DominanceFrontier::DominanceFrontier ( )
inline

Member Function Documentation

const DominanceFrontier::DomSetType & DominanceFrontier::calculate ( const DominatorTree DT,
const DomTreeNode Node 
)
virtual void llvm::DominanceFrontier::getAnalysisUsage ( AnalysisUsage ) const
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().

BasicBlock* llvm::DominanceFrontier::getRoot ( ) const
inline

Definition at line 165 of file DominanceFrontier.h.

References llvm::DominanceFrontierBase::Roots.

virtual bool llvm::DominanceFrontier::runOnFunction ( Function F)
inlinevirtual

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.

Member Data Documentation

char DominanceFrontier::ID = 0
static

Definition at line 159 of file DominanceFrontier.h.


The documentation for this class was generated from the following files: