LLVM API Documentation

llvm::DominanceFrontierBase Class Reference

#include <Dominators.h>

Inheritance diagram for llvm::DominanceFrontierBase:

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

Collaboration graph
[legend]

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


Detailed Description

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

Definition at line 904 of file Dominators.h.


Member Typedef Documentation

Definition at line 906 of file Dominators.h.

Definition at line 907 of file Dominators.h.

typedef DomSetMapType::iterator llvm::DominanceFrontierBase::iterator

Definition at line 930 of file Dominators.h.

typedef DomSetMapType::const_iterator llvm::DominanceFrontierBase::const_iterator

Definition at line 931 of file Dominators.h.


Constructor & Destructor Documentation

llvm::DominanceFrontierBase::DominanceFrontierBase ( void *  ID,
bool  isPostDom 
) [inline]

Definition at line 914 of file Dominators.h.


Member Function Documentation

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 921 of file Dominators.h.

References Roots.

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

isPostDominator - Returns true if analysis based of postdoms

Definition at line 925 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 927 of file Dominators.h.

References Frontiers.

iterator llvm::DominanceFrontierBase::begin (  )  [inline]

Definition at line 932 of file Dominators.h.

References Frontiers.

Referenced by compare(), print(), and removeBlock().

const_iterator llvm::DominanceFrontierBase::begin (  )  const [inline]

Definition at line 933 of file Dominators.h.

References Frontiers.

iterator llvm::DominanceFrontierBase::end (  )  [inline]

const_iterator llvm::DominanceFrontierBase::end (  )  const [inline]

Definition at line 935 of file Dominators.h.

References Frontiers.

iterator llvm::DominanceFrontierBase::find ( BasicBlock B  )  [inline]

const_iterator llvm::DominanceFrontierBase::find ( BasicBlock B  )  const [inline]

Definition at line 937 of file Dominators.h.

References Frontiers.

void llvm::DominanceFrontierBase::addBasicBlock ( BasicBlock BB,
const DomSetType frontier 
) [inline]

void llvm::DominanceFrontierBase::removeBlock ( BasicBlock BB  )  [inline]

removeBlock - Remove basic block BB's frontier.

Definition at line 945 of file Dominators.h.

References begin(), E, end(), find(), Frontiers, and I.

void llvm::DominanceFrontierBase::addToFrontier ( iterator  I,
BasicBlock Node 
) [inline]

Definition at line 952 of file Dominators.h.

References end().

Referenced by llvm::DominanceFrontier::splitBlock().

void llvm::DominanceFrontierBase::removeFromFrontier ( iterator  I,
BasicBlock Node 
) [inline]

Definition at line 957 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 965 of file Dominators.h.

References E, I, and Node.

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 990 of file Dominators.h.

References begin(), compareDomSet(), E, end(), find(), I, 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(), I, and llvm::WriteAsOperand().

Referenced by dump(), and print().

void llvm::DominanceFrontierBase::print ( std::ostream *  OS,
const Module M = 0 
) const [inline]

Reimplemented from llvm::Pass.

Definition at line 1018 of file Dominators.h.

References M, and print().

void DominanceFrontierBase::dump (  )  [virtual]

Definition at line 286 of file Dominators.cpp.

References llvm::cerr(), and print().

Referenced by llvm::PMDataManager::verifyDomInfo().


Member Data Documentation

Definition at line 911 of file Dominators.h.

Referenced by isPostDominator().


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



This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.