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