|
LLVM
8.0.1
|
PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominator tree. More...
#include "llvm/Analysis/PostDominators.h"


Public Types | |
| using | Base = PostDomTreeBase< BasicBlock > |
Public Types inherited from llvm::DominatorTreeBase< NodeT, IsPostDom > | |
| enum | VerificationLevel { VerificationLevel::Fast, VerificationLevel::Basic, VerificationLevel::Full } |
| using | NodeType = NodeT |
| using | NodePtr = NodeT * |
| using | ParentPtr = decltype(std::declval< NodeT * >() ->getParent()) |
| using | ParentType = typename std::remove_pointer< ParentPtr >::type |
| using | UpdateType = cfg::Update< NodePtr > |
| using | UpdateKind = cfg::UpdateKind |
Public Member Functions | |
| PostDominatorTree ()=default | |
| PostDominatorTree (Function &F) | |
| bool | invalidate (Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &) |
| Handle invalidation explicitly. More... | |
Public Member Functions inherited from llvm::DominatorTreeBase< NodeT, IsPostDom > | |
| DominatorTreeBase () | |
| DominatorTreeBase (DominatorTreeBase &&Arg) | |
| DominatorTreeBase & | operator= (DominatorTreeBase &&RHS) |
| DominatorTreeBase (const DominatorTreeBase &)=delete | |
| DominatorTreeBase & | operator= (const DominatorTreeBase &)=delete |
| const SmallVectorImpl< 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... | |
| 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 (const NodeT *BB) const |
| getNode - return the (Post)DominatorTree node for the specified basic block. More... | |
| DomTreeNodeBase< NodeT > * | operator[] (const 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) const |
| findNearestCommonDominator - Find nearest common dominator basic block for basic block A and B. More... | |
| const NodeT * | findNearestCommonDominator (const NodeT *A, const NodeT *B) const |
| bool | 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. More... | |
| void | insertEdge (NodeT *From, NodeT *To) |
| Inform the dominator tree about a CFG edge insertion and update the tree. More... | |
| void | deleteEdge (NodeT *From, NodeT *To) |
| Inform the dominator tree about a CFG edge deletion and update the tree. More... | |
| 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 > *N, 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 (ParentType &Func) |
| recalculate - compute a dominator tree for the given function More... | |
| void | recalculate (ParentType &Func, ArrayRef< UpdateType > Updates) |
| bool | verify (VerificationLevel VL=VerificationLevel::Full) const |
| verify - checks if the tree is correct. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from llvm::DominatorTreeBase< NodeT, IsPostDom > | |
| static constexpr bool | IsPostDominator = IsPostDom |
| static constexpr UpdateKind | Insert = UpdateKind::Insert |
| static constexpr UpdateKind | Delete = UpdateKind::Delete |
Protected Types inherited from llvm::DominatorTreeBase< NodeT, IsPostDom > | |
| using | DomTreeNodeMapType = DenseMap< NodeT *, std::unique_ptr< DomTreeNodeBase< NodeT > >> |
Protected Member Functions inherited from llvm::DominatorTreeBase< NodeT, IsPostDom > | |
| void | addRoot (NodeT *BB) |
| void | reset () |
| template<class N > | |
| void | Split (typename GraphTraits< N >::NodeRef NewBB) |
| template<> | |
| void | addRoot (MachineBasicBlock *MBB) |
Protected Attributes inherited from llvm::DominatorTreeBase< NodeT, IsPostDom > | |
| SmallVector< NodeT *, IsPostDom ? 4 :1 > | Roots |
| DomTreeNodeMapType | DomTreeNodes |
| DomTreeNodeBase< NodeT > * | RootNode |
| ParentPtr | Parent = nullptr |
| bool | DFSInfoValid = false |
| unsigned int | SlowQueries = 0 |
PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominator tree.
Definition at line 29 of file PostDominators.h.
Definition at line 31 of file PostDominators.h.
|
default |
|
inlineexplicit |
Definition at line 34 of file PostDominators.h.
References F(), invalidate(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::recalculate().
| bool llvm::PostDominatorTree::invalidate | ( | Function & | F, |
| const PreservedAnalyses & | PA, | ||
| FunctionAnalysisManager::Invalidator & | |||
| ) |
Handle invalidation explicitly.
Referenced by PostDominatorTree().
1.8.13