LLVM: llvm::MachinePostDominatorTree Class Reference (original) (raw)
Public Member Functions
MachinePostDominatorTree ()=default
MachinePostDominatorTree (MachineFunction &MF)
invalidate (MachineFunction &, const PreservedAnalyses &PA, MachineFunctionAnalysisManager::Invalidator &)
Handle invalidation explicitly.
findNearestCommonDominator (ArrayRef< MachineBasicBlock * > Blocks) const
Returns the nearest common dominator of the given blocks.
T *
findNearestCommonDominator (T *A, T *B) const
Make findNearestCommonDominator(const NodeT *A, const NodeT *B) available.
findNearestCommonDominator (const T *A, const T *B) const
Make findNearestCommonDominator(const NodeT *A, const NodeT *B) available.
T *
findNearestCommonDominator (iterator_range< IteratorTy > Nodes) const
Make findNearestCommonDominator(const NodeT *A, const NodeT *B) available.
Public Member Functions inherited from llvm::DominatorTreeBase< T, true >
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< T > *
getNode - return the (Post)DominatorTree node for the specified basic block.
DomTreeNodeBase< T > *
operator[] (const T *BB) const
See getNode.
DomTreeNodeBase< T > *
getRootNode ()
getRootNode - This returns the entry node for the CFG of the function.
const DomTreeNodeBase< T > *
getRootNode () const
void
getDescendants (T *R, SmallVectorImpl< T * > &Result) const
Get all nodes dominated by R, including R itself.
properlyDominates (const DomTreeNodeBase< T > *A, const DomTreeNodeBase< T > *B) const
properlyDominates - Returns true iff A dominates B and A != B.
properlyDominates (const T *A, const T *B) const
isReachableFromEntry (const T *A) const
isReachableFromEntry - Return true if A is dominated by the entry block of the function containing it.
isReachableFromEntry (const DomTreeNodeBase< T > *A) const
dominates (const DomTreeNodeBase< T > *A, const DomTreeNodeBase< T > *B) const
dominates - Returns true iff A dominates B.
dominates (const T *A, const T *B) const
T *
T *
findNearestCommonDominator (T *A, T *B) const
Find nearest common dominator basic block for basic block A and B.
findNearestCommonDominator (const T *A, const T *B) const
isVirtualRoot (const DomTreeNodeBase< T > *A) const
T *
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 (T *From, T *To)
Inform the dominator tree about a CFG edge insertion and update the tree.
void
deleteEdge (T *From, T *To)
Inform the dominator tree about a CFG edge deletion and update the tree.
DomTreeNodeBase< T > *
addNewBlock (T *BB, T *DomBB)
Add a new node to the dominator tree information.
DomTreeNodeBase< T > *
setNewRoot (T *BB)
Add a new node to the forward dominator tree and make it a new root.
void
changeImmediateDominator (DomTreeNodeBase< T > *N, DomTreeNodeBase< T > *NewIDom)
changeImmediateDominator - This method is used to update the dominator tree information when a node's immediate dominator changes.
void
changeImmediateDominator (T *BB, T *NewBB)
void
eraseNode - Removes a node from the dominator tree.
void
splitBlock (T *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 ()
MachinePostDominatorTree - an analysis pass wrapper for DominatorTree used to compute the post-dominator tree for MachineFunctions.
Definition at line 49 of file MachinePostDominators.h.