LLVM  4.0.0
Public Types | Public Member Functions | List of all members
llvm::PostDominatorTree Struct Reference

PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominator tree. More...

#include <PostDominators.h>

Inheritance diagram for llvm::PostDominatorTree:
[legend]
Collaboration diagram for llvm::PostDominatorTree:
[legend]

Public Types

typedef DominatorTreeBase
< BasicBlock
Base
 

Public Member Functions

 PostDominatorTree ()
 
- Public Member Functions inherited from llvm::DominatorTreeBase< BasicBlock >
 DominatorTreeBase (bool isPostDom)
 
 DominatorTreeBase (DominatorTreeBase &&Arg)
 
DominatorTreeBaseoperator= (DominatorTreeBase &&RHS)
 
bool compare (const DominatorTreeBase &Other) const
 compare - Return false if the other dominator tree base matches this dominator tree base. More...
 
void releaseMemory ()
 
DomTreeNodeBase< NodeT > * getNode (NodeT *BB) const
 getNode - return the (Post)DominatorTree node for the specified basic block. More...
 
DomTreeNodeBase< NodeT > * operator[] (NodeT *BB) const
 See getNode. More...
 
DomTreeNodeBase< NodeT > * getRootNode ()
 getRootNode - This returns the entry node for the CFG of the function. More...
 
const DomTreeNodeBase< NodeT > * getRootNode () const
 
void getDescendants (NodeT *R, SmallVectorImpl< NodeT * > &Result) const
 Get all nodes dominated by R, including R itself. More...
 
bool properlyDominates (const DomTreeNodeBase< NodeT > *A, const DomTreeNodeBase< NodeT > *B) const
 properlyDominates - Returns true iff A dominates B and A != B. More...
 
bool properlyDominates (const NodeT *A, const NodeT *B) const
 
bool isReachableFromEntry (const NodeT *A) const
 isReachableFromEntry - Return true if A is dominated by the entry block of the function containing it. More...
 
bool isReachableFromEntry (const DomTreeNodeBase< NodeT > *A) const
 
bool dominates (const DomTreeNodeBase< NodeT > *A, const DomTreeNodeBase< NodeT > *B) const
 dominates - Returns true iff A dominates B. More...
 
bool dominates (const NodeT *A, const NodeT *B) const
 
NodeT * getRoot () const
 
NodeT * findNearestCommonDominator (NodeT *A, NodeT *B)
 findNearestCommonDominator - Find nearest common dominator basic block for basic block A and B. More...
 
const NodeT * findNearestCommonDominator (const NodeT *A, const NodeT *B)
 
DomTreeNodeBase< NodeT > * addNewBlock (NodeT *BB, NodeT *DomBB)
 Add a new node to the dominator tree information. More...
 
DomTreeNodeBase< NodeT > * setNewRoot (NodeT *BB)
 Add a new node to the forward dominator tree and make it a new root. More...
 
void changeImmediateDominator (DomTreeNodeBase< NodeT > *BasicBlock, DomTreeNodeBase< NodeT > *NewIDom)
 changeImmediateDominator - This method is used to update the dominator tree information when a node's immediate dominator changes. More...
 
void changeImmediateDominator (NodeT *BB, NodeT *NewBB)
 
void eraseNode (NodeT *BB)
 eraseNode - Removes a node from the dominator tree. More...
 
void splitBlock (NodeT *NewBB)
 splitBlock - BB is split and now it has one successor. More...
 
void print (raw_ostream &o) const
 print - Convert to human readable form More...
 
void updateDFSNumbers () const
 updateDFSNumbers - Assign In and Out numbers to the nodes while walking dominator tree in dfs order. More...
 
void recalculate (FT &F)
 recalculate - compute a dominator tree for the given function More...
 
- Public Member Functions inherited from llvm::DominatorBase< NodeT >
const std::vector< NodeT * > & getRoots () const
 getRoots - Return the root blocks of the current CFG. More...
 
bool isPostDominator () const
 isPostDominator - Returns true if analysis based of postdoms More...
 

Additional Inherited Members

- Protected Types inherited from llvm::DominatorTreeBase< BasicBlock >
typedef DenseMap< NodeT
*, std::unique_ptr
< DomTreeNodeBase< NodeT > > > 
DomTreeNodeMapType
 
- Protected Member Functions inherited from llvm::DominatorTreeBase< BasicBlock >
void reset ()
 
void Split (DominatorTreeBaseByGraphTraits< GraphT > &DT, typename GraphT::NodeRef NewBB)
 
DomTreeNodeBase< NodeT > * getNodeForBlock (NodeT *BB)
 
NodeT * getIDom (NodeT *BB) const
 
void addRoot (NodeT *BB)
 
- Protected Member Functions inherited from llvm::DominatorBase< NodeT >
 DominatorBase (bool isPostDom)
 
 DominatorBase (DominatorBase &&Arg)
 
DominatorBaseoperator= (DominatorBase &&RHS)
 
- Protected Attributes inherited from llvm::DominatorTreeBase< BasicBlock >
DomTreeNodeMapType DomTreeNodes
 
DomTreeNodeBase< NodeT > * RootNode
 
bool DFSInfoValid
 
unsigned int SlowQueries
 
DenseMap< NodeT *, NodeT * > IDoms
 
std::vector< NodeT * > Vertex
 
DenseMap< NodeT *, InfoRec > Info
 
- Protected Attributes inherited from llvm::DominatorBase< NodeT >
std::vector< NodeT * > Roots
 
bool IsPostDominators
 

Detailed Description

PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominator tree.

Definition at line 25 of file PostDominators.h.

Member Typedef Documentation

Definition at line 26 of file PostDominators.h.

Constructor & Destructor Documentation

llvm::PostDominatorTree::PostDominatorTree ( )
inline

Definition at line 28 of file PostDominators.h.


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