LLVM API Documentation
#include <DominanceFrontier.h>
Public Types | |
typedef std::set< BlockT * > | DomSetType |
typedef std::map< BlockT *, DomSetType > | DomSetMapType |
typedef DomSetMapType::iterator | iterator |
typedef DomSetMapType::const_iterator | const_iterator |
Public Member Functions | |
DominanceFrontierBase (bool isPostDom) | |
const std::vector< BlockT * > & | getRoots () const |
BlockT * | getRoot () const |
bool | isPostDominator () const |
void | releaseMemory () |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
iterator | find (BlockT *B) |
const_iterator | find (BlockT *B) const |
iterator | addBasicBlock (BlockT *BB, const DomSetType &frontier) |
void | removeBlock (BlockT *BB) |
removeBlock - Remove basic block BB's frontier. | |
void | addToFrontier (iterator I, BlockT *Node) |
void | removeFromFrontier (iterator I, BlockT *Node) |
bool | compareDomSet (DomSetType &DS1, const DomSetType &DS2) const |
bool | compare (DominanceFrontierBase< BlockT > &Other) const |
void | print (raw_ostream &OS) const |
void | dump () const |
dump - Dump the dominance frontier to dbgs(). | |
Protected Types | |
typedef GraphTraits< BlockT * > | BlockTraits |
Protected Attributes | |
DomSetMapType | Frontiers |
std::vector< BlockT * > | Roots |
const bool | IsPostDominators |
DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a function.
Definition at line 32 of file DominanceFrontier.h.
typedef GraphTraits<BlockT *> llvm::DominanceFrontierBase< BlockT >::BlockTraits [protected] |
Definition at line 38 of file DominanceFrontier.h.
typedef DomSetMapType::const_iterator llvm::DominanceFrontierBase< BlockT >::const_iterator |
Definition at line 72 of file DominanceFrontier.h.
typedef std::map<BlockT *, DomSetType> llvm::DominanceFrontierBase< BlockT >::DomSetMapType |
Definition at line 35 of file DominanceFrontier.h.
typedef std::set<BlockT *> llvm::DominanceFrontierBase< BlockT >::DomSetType |
Reimplemented in llvm::ForwardDominanceFrontierBase< BlockT >, llvm::ForwardDominanceFrontierBase< BasicBlock >, and llvm::ForwardDominanceFrontierBase< MachineBasicBlock >.
Definition at line 34 of file DominanceFrontier.h.
typedef DomSetMapType::iterator llvm::DominanceFrontierBase< BlockT >::iterator |
Definition at line 71 of file DominanceFrontier.h.
llvm::DominanceFrontierBase< BlockT >::DominanceFrontierBase | ( | bool | isPostDom | ) | [inline] |
Definition at line 45 of file DominanceFrontier.h.
iterator llvm::DominanceFrontierBase< BlockT >::addBasicBlock | ( | BlockT * | BB, |
const DomSetType & | frontier | ||
) | [inline] |
Definition at line 80 of file DominanceFrontier.h.
Referenced by llvm::MachineDominanceFrontier::addBasicBlock(), and llvm::DominanceFrontier::addBasicBlock().
void llvm::DominanceFrontierBase< BlockT >::addToFrontier | ( | iterator | I, |
BlockT * | Node | ||
) |
Definition at line 51 of file DominanceFrontierImpl.h.
References llvm::sys::path::end().
Referenced by llvm::MachineDominanceFrontier::addToFrontier(), and llvm::DominanceFrontier::addToFrontier().
iterator llvm::DominanceFrontierBase< BlockT >::begin | ( | ) | [inline] |
Definition at line 73 of file DominanceFrontier.h.
Referenced by llvm::MachineDominanceFrontier::begin(), llvm::DominanceFrontier::begin(), and llvm::DominanceFrontierBase< BlockT >::compare().
const_iterator llvm::DominanceFrontierBase< BlockT >::begin | ( | ) | const [inline] |
Definition at line 74 of file DominanceFrontier.h.
bool llvm::DominanceFrontierBase< BlockT >::compare | ( | DominanceFrontierBase< BlockT > & | Other | ) | const |
compare - Return true if the other dominance frontier base matches this dominance frontier base. Otherwise return false.
Definition at line 92 of file DominanceFrontierImpl.h.
References llvm::DominanceFrontierBase< BlockT >::begin(), llvm::DominanceFrontierBase< BlockT >::end(), llvm::sys::path::end(), I, and Node.
Referenced by llvm::MachineDominanceFrontier::compare(), and llvm::DominanceFrontier::compare().
bool llvm::DominanceFrontierBase< BlockT >::compareDomSet | ( | DomSetType & | DS1, |
const DomSetType & | DS2 | ||
) | const |
compareDomSet - Return false if two domsets match. Otherwise return true;
Definition at line 67 of file DominanceFrontierImpl.h.
Referenced by llvm::MachineDominanceFrontier::compareDomSet(), and llvm::DominanceFrontier::compareDomSet().
void llvm::DominanceFrontierBase< BlockT >::dump | ( | ) | const |
dump - Dump the dominance frontier to dbgs().
Definition at line 146 of file DominanceFrontierImpl.h.
References llvm::dbgs().
iterator llvm::DominanceFrontierBase< BlockT >::end | ( | ) | [inline] |
Definition at line 75 of file DominanceFrontier.h.
Referenced by llvm::DominanceFrontierBase< MachineBasicBlock >::addBasicBlock(), llvm::DominanceFrontierBase< BlockT >::compare(), llvm::MachineDominanceFrontier::end(), and llvm::DominanceFrontier::end().
const_iterator llvm::DominanceFrontierBase< BlockT >::end | ( | ) | const [inline] |
Definition at line 76 of file DominanceFrontier.h.
iterator llvm::DominanceFrontierBase< BlockT >::find | ( | BlockT * | B | ) | [inline] |
Definition at line 77 of file DominanceFrontier.h.
Referenced by llvm::DominanceFrontierBase< MachineBasicBlock >::addBasicBlock(), llvm::MachineDominanceFrontier::find(), and llvm::DominanceFrontier::find().
const_iterator llvm::DominanceFrontierBase< BlockT >::find | ( | BlockT * | B | ) | const [inline] |
Definition at line 78 of file DominanceFrontier.h.
BlockT* llvm::DominanceFrontierBase< BlockT >::getRoot | ( | ) | const [inline] |
Definition at line 55 of file DominanceFrontier.h.
Referenced by llvm::MachineDominanceFrontier::getRoot(), and llvm::DominanceFrontier::getRoot().
const std::vector<BlockT *>& llvm::DominanceFrontierBase< BlockT >::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 51 of file DominanceFrontier.h.
Referenced by llvm::MachineDominanceFrontier::getRoots(), and llvm::DominanceFrontier::getRoots().
bool llvm::DominanceFrontierBase< BlockT >::isPostDominator | ( | ) | const [inline] |
isPostDominator - Returns true if analysis based of postdoms
Definition at line 62 of file DominanceFrontier.h.
Referenced by llvm::MachineDominanceFrontier::isPostDominator(), and llvm::DominanceFrontier::isPostDominator().
void llvm::DominanceFrontierBase< BlockT >::print | ( | raw_ostream & | OS | ) | const |
print - Convert to human readable form
Definition at line 122 of file DominanceFrontierImpl.h.
References llvm::sys::path::begin(), llvm::sys::path::end(), and I.
Referenced by llvm::DominanceFrontier::print().
void llvm::DominanceFrontierBase< BlockT >::releaseMemory | ( | ) | [inline] |
Definition at line 66 of file DominanceFrontier.h.
Referenced by llvm::MachineDominanceFrontier::releaseMemory(), and llvm::DominanceFrontier::releaseMemory().
void llvm::DominanceFrontierBase< BlockT >::removeBlock | ( | BlockT * | BB | ) |
removeBlock - Remove basic block BB's frontier.
Definition at line 43 of file DominanceFrontierImpl.h.
References llvm::sys::path::begin(), llvm::sys::path::end(), and I.
Referenced by llvm::MachineDominanceFrontier::removeBlock(), and llvm::DominanceFrontier::removeBlock().
void llvm::DominanceFrontierBase< BlockT >::removeFromFrontier | ( | iterator | I, |
BlockT * | Node | ||
) |
Definition at line 59 of file DominanceFrontierImpl.h.
References llvm::sys::path::end().
Referenced by llvm::MachineDominanceFrontier::removeFromFrontier(), and llvm::DominanceFrontier::removeFromFrontier().
DomSetMapType llvm::DominanceFrontierBase< BlockT >::Frontiers [protected] |
Definition at line 40 of file DominanceFrontier.h.
Referenced by llvm::DominanceFrontierBase< MachineBasicBlock >::addBasicBlock(), llvm::DominanceFrontierBase< MachineBasicBlock >::begin(), llvm::DominanceFrontierBase< MachineBasicBlock >::end(), llvm::DominanceFrontierBase< MachineBasicBlock >::find(), and llvm::DominanceFrontierBase< MachineBasicBlock >::releaseMemory().
const bool llvm::DominanceFrontierBase< BlockT >::IsPostDominators [protected] |
Definition at line 42 of file DominanceFrontier.h.
Referenced by llvm::DominanceFrontierBase< MachineBasicBlock >::isPostDominator().
std::vector<BlockT *> llvm::DominanceFrontierBase< BlockT >::Roots [protected] |
Definition at line 41 of file DominanceFrontier.h.
Referenced by llvm::ForwardDominanceFrontierBase< MachineBasicBlock >::analyze(), llvm::DominanceFrontierBase< MachineBasicBlock >::getRoot(), and llvm::DominanceFrontierBase< MachineBasicBlock >::getRoots().