|
clang 22.0.0git
|
Dominator tree builder for Clang's CFG based on llvm::DominatorTreeBase. More...
#include "clang/Analysis/Analyses/Dominators.h"
Public Types | |
| using | DominatorTreeBase = llvm::DominatorTreeBase<CFGBlock, IsPostDom> |
Public Member Functions | |
| CFGDominatorTreeImpl ()=default | |
| CFGDominatorTreeImpl (CFG *cfg) | |
| ~CFGDominatorTreeImpl () override=default | |
| DominatorTreeBase & | getBase () |
| CFG * | getCFG () |
| CFGBlock * | getRoot () const |
| DomTreeNode * | getRootNode () |
| bool | compare (CFGDominatorTreeImpl &Other) const |
| Compares two dominator trees. | |
| void | buildDominatorTree (CFG *cfg) |
| Builds the dominator tree for a given CFG. | |
| void | dump () |
| Dumps immediate dominators for each block. | |
| bool | dominates (const CFGBlock *A, const CFGBlock *B) const |
Tests whether A dominates B. | |
| bool | properlyDominates (const CFGBlock *A, const CFGBlock *B) const |
Tests whether A properly dominates B. | |
| CFGBlock * | findNearestCommonDominator (CFGBlock *A, CFGBlock *B) |
| const CFGBlock * | findNearestCommonDominator (const CFGBlock *A, const CFGBlock *B) |
| void | changeImmediateDominator (CFGBlock *N, CFGBlock *NewIDom) |
| Update the dominator tree information when a node's immediate dominator changes. | |
| bool | isReachableFromEntry (const CFGBlock *A) |
Tests whether A is reachable from the entry block. | |
| virtual void | releaseMemory () |
| Releases the memory held by the dominator tree. | |
| virtual void | print (raw_ostream &OS, const llvm::Module *M=nullptr) const |
| Converts the dominator tree to human readable form. | |
| Public Member Functions inherited from clang::ManagedAnalysis | |
| virtual | ~ManagedAnalysis () |
Additional Inherited Members | |
| Protected Member Functions inherited from clang::ManagedAnalysis | |
| ManagedAnalysis ()=default | |
Dominator tree builder for Clang's CFG based on llvm::DominatorTreeBase.
Definition at line 42 of file Dominators.h.
| using clang::CFGDominatorTreeImpl< IsPostDom >::DominatorTreeBase = llvm::DominatorTreeBase<CFGBlock, IsPostDom> |
Definition at line 46 of file Dominators.h.
|
default |
|
inline |
Definition at line 50 of file Dominators.h.
|
overridedefault |
|
inline |
Builds the dominator tree for a given CFG.
Definition at line 87 of file Dominators.h.
Referenced by clang::CFGDominatorTreeImpl< false >::CFGDominatorTreeImpl().
|
inline |
Update the dominator tree information when a node's immediate dominator changes.
Definition at line 160 of file Dominators.h.
|
inline |
Compares two dominator trees.
Definition at line 73 of file Dominators.h.
|
inline |
Tests whether A dominates B.
Note a block always dominates itself.
Definition at line 136 of file Dominators.h.
|
inline |
Dumps immediate dominators for each block.
Definition at line 94 of file Dominators.h.
|
inline |
A and B. If there is no such block then return NULL. Definition at line 149 of file Dominators.h.
|
inline |
Definition at line 153 of file Dominators.h.
|
inline |
Definition at line 56 of file Dominators.h.
|
inline |
Definition at line 58 of file Dominators.h.
|
inline |
Definition at line 61 of file Dominators.h.
|
inline |
Definition at line 66 of file Dominators.h.
Referenced by clang::CFGDominatorTreeImpl< false >::compare(), and llvm::GraphTraits< clang::CFGDomTree * >::getEntryNode().
|
inline |
Tests whether A is reachable from the entry block.
Definition at line 165 of file Dominators.h.
|
inlinevirtual |
Converts the dominator tree to human readable form.
Definition at line 173 of file Dominators.h.
|
inline |
Tests whether A properly dominates B.
A is the same block as B, otherwise whether A dominates B. Definition at line 143 of file Dominators.h.
|
inlinevirtual |
Releases the memory held by the dominator tree.
Definition at line 170 of file Dominators.h.