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

Detailed Description

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

Definition at line 580 of file Dominators.h.


Member Typedef Documentation

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.


Constructor & Destructor Documentation

llvm::DominanceFrontierBase::DominanceFrontierBase ( bool  isPostDom  )  [inline]

Definition at line 587 of file Dominators.h.


Member Function Documentation

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]

Definition at line 594 of file Dominators.h.

References Frontiers.

Referenced by print().

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

Definition at line 595 of file Dominators.h.

References Frontiers.

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]

Definition at line 597 of file Dominators.h.

References Frontiers.

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

Definition at line 598 of file Dominators.h.

References B, and Frontiers.

Referenced by addBasicBlock().

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

Definition at line 599 of file Dominators.h.

References B, and Frontiers.

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]

Definition at line 606 of file Dominators.h.

References end(), and Node.

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

Definition at line 611 of file Dominators.h.

References end(), and Node.

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


Member Data Documentation

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


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