llvm::DominanceFrontierBase Class Reference

#include <Dominators.h>

Inheritance diagram for llvm::DominanceFrontierBase:

llvm::DominanceFrontier llvm::PostDominanceFrontier

List of all members.

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
iterator 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 (raw_ostream &OS, const Module *=0) const

Protected Attributes

DomSetMapType Frontiers
std::vector< BasicBlock * > Roots
const bool IsPostDominators


Detailed Description

DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a function.

Member Function Documentation

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.

bool llvm::DominanceFrontierBase::compareDomSet ( DomSetType &  DS1,
const DomSetType &  DS2 
) const [inline]

compareDomSet - Return false if two domsets match. Otherwise return true;

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).

bool llvm::DominanceFrontierBase::isPostDominator (  )  const [inline]

isPostDominator - Returns true if analysis based of postdoms

virtual void llvm::DominanceFrontierBase::print ( raw_ostream &  OS,
const Module *  = 0 
) const [virtual]

print - Convert to human readable form


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

Generated on Fri Mar 19 01:41:24 2010 by  doxygen 1.5.8