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