LLVM: llvm::VPDominatorTree Class Reference (original) (raw)
Template specialization of the standard LLVM dominator tree utility for VPBlockBases. More...
Public Member Functions
VPDominatorTree (VPlan &Plan)
properlyDominates (const VPRecipeBase *A, const VPRecipeBase *B)
properlyDominates (const DomTreeNodeBase< VPBlockBase > *A, const DomTreeNodeBase< VPBlockBase > *B) const
Returns true if A properly dominates B.
properlyDominates (const VPBlockBase *A, const VPBlockBase *B) const
Returns true if A properly dominates B.
Public Member Functions inherited from llvm::DominatorTreeBase< VPBlockBase, false >
DominatorTreeBase ()=default
DominatorTreeBase (DominatorTreeBase &&Arg)
operator= (DominatorTreeBase &&RHS)
DominatorTreeBase (const DominatorTreeBase &)=delete
operator= (const DominatorTreeBase &)=delete
root_begin ()
root_begin () const
root_end ()
size_t
iterator_range< root_iterator >
roots ()
iterator_range< const_root_iterator >
isPostDominator - Returns true if analysis based of postdoms
compare (const DominatorTreeBase &Other) const
compare - Return false if the other dominator tree base matches this dominator tree base.
DomTreeNodeBase< VPBlockBase > *
getNode (const VPBlockBase *BB) const
getNode - return the (Post)DominatorTree node for the specified basic block.
DomTreeNodeBase< VPBlockBase > *
operator[] (const VPBlockBase *BB) const
See getNode.
DomTreeNodeBase< VPBlockBase > *
getRootNode ()
getRootNode - This returns the entry node for the CFG of the function.
const DomTreeNodeBase< VPBlockBase > *
getRootNode () const
void
getDescendants (VPBlockBase *R, SmallVectorImpl< VPBlockBase * > &Result) const
Get all nodes dominated by R, including R itself.
properlyDominates (const DomTreeNodeBase< VPBlockBase > *A, const DomTreeNodeBase< VPBlockBase > *B) const
properlyDominates - Returns true iff A dominates B and A != B.
properlyDominates (const VPBlockBase *A, const VPBlockBase *B) const
isReachableFromEntry (const VPBlockBase *A) const
isReachableFromEntry - Return true if A is dominated by the entry block of the function containing it.
isReachableFromEntry (const DomTreeNodeBase< VPBlockBase > *A) const
dominates (const DomTreeNodeBase< VPBlockBase > *A, const DomTreeNodeBase< VPBlockBase > *B) const
dominates - Returns true iff A dominates B.
dominates (const VPBlockBase *A, const VPBlockBase *B) const
findNearestCommonDominator (VPBlockBase *A, VPBlockBase *B) const
Find nearest common dominator basic block for basic block A and B.
findNearestCommonDominator (const VPBlockBase *A, const VPBlockBase *B) const
isVirtualRoot (const DomTreeNodeBase< VPBlockBase > *A) const
findNearestCommonDominator (iterator_range< IteratorTy > Nodes) const
void
applyUpdates (ArrayRef< UpdateType > Updates)
Inform the dominator tree about a sequence of CFG edge insertions and deletions and perform a batch update on the tree.
void
applyUpdates (ArrayRef< UpdateType > Updates, ArrayRef< UpdateType > PostViewUpdates)
void
insertEdge (VPBlockBase *From, VPBlockBase *To)
Inform the dominator tree about a CFG edge insertion and update the tree.
void
deleteEdge (VPBlockBase *From, VPBlockBase *To)
Inform the dominator tree about a CFG edge deletion and update the tree.
DomTreeNodeBase< VPBlockBase > *
addNewBlock (VPBlockBase *BB, VPBlockBase *DomBB)
Add a new node to the dominator tree information.
DomTreeNodeBase< VPBlockBase > *
setNewRoot (VPBlockBase *BB)
Add a new node to the forward dominator tree and make it a new root.
void
changeImmediateDominator (DomTreeNodeBase< VPBlockBase > *N, DomTreeNodeBase< VPBlockBase > *NewIDom)
changeImmediateDominator - This method is used to update the dominator tree information when a node's immediate dominator changes.
void
changeImmediateDominator (VPBlockBase *BB, VPBlockBase *NewBB)
void
eraseNode (VPBlockBase *BB)
eraseNode - Removes a node from the dominator tree.
void
splitBlock (VPBlockBase *NewBB)
splitBlock - BB is split and now it has one successor.
void
print (raw_ostream &O) const
print - Convert to human readable form
void
updateDFSNumbers - Assign In and Out numbers to the nodes while walking dominator tree in dfs order.
void
recalculate (ParentType &Func)
recalculate - compute a dominator tree for the given function
void
recalculate (ParentType &Func, ArrayRef< UpdateType > Updates)
std::enable_if_t< GraphHasNodeNumbers< T * >, void >
Update dominator tree after renumbering blocks.
verify (VerificationLevel VL=VerificationLevel::Full) const
verify - checks if the tree is correct.
void
reset ()
Template specialization of the standard LLVM dominator tree utility for VPBlockBases.
Definition at line 38 of file VPlanDominatorTree.h.