LLVM 20.0.0git
|
DominanceFrontier Class - Concrete subclass of DominanceFrontierBase that is used to compute a forward dominator frontiers. More...
#include "llvm/Analysis/DominanceFrontier.h"
Public Types | |
using | DomTreeT = DomTreeBase< BlockT > |
using | DomTreeNodeT = DomTreeNodeBase< BlockT > |
using | DomSetType = typename DominanceFrontierBase< BlockT, false >::DomSetType |
Public Types inherited from llvm::DominanceFrontierBase< BlockT, false > | |
using | DomSetType = SetVector< BlockT * > |
using | DomSetMapType = DenseMap< BlockT *, DomSetType > |
using | iterator = typename DomSetMapType::iterator |
using | const_iterator = typename DomSetMapType::const_iterator |
Public Member Functions | |
void | analyze (DomTreeT &DT) |
const DomSetType & | calculate (const DomTreeT &DT, const DomTreeNodeT *Node) |
Public Member Functions inherited from llvm::DominanceFrontierBase< BlockT, false > | |
DominanceFrontierBase ()=default | |
const SmallVectorImpl< BlockT * > & | getRoots () const |
getRoots - Return the root blocks of the current CFG. | |
BlockT * | getRoot () const |
bool | isPostDominator () const |
isPostDominator - Returns true if analysis based of postdoms | |
void | releaseMemory () |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
iterator | find (BlockT *B) |
const_iterator | find (BlockT *B) const |
iterator | addBasicBlock (BlockT *BB, const DomSetType &frontier) |
void | removeBlock (BlockT *BB) |
removeBlock - Remove basic block BB's frontier. | |
void | addToFrontier (iterator I, BlockT *Node) |
void | removeFromFrontier (iterator I, BlockT *Node) |
bool | compareDomSet (DomSetType &DS1, const DomSetType &DS2) const |
compareDomSet - Return false if two domsets match. | |
bool | compare (DominanceFrontierBase &Other) const |
compare - Return false if the other dominance frontier base matches this dominance frontier base. | |
void | print (raw_ostream &OS) const |
print - Convert to human readable form | |
void | dump () const |
dump - Dump the dominance frontier to dbgs(). | |
Additional Inherited Members | |
Protected Types inherited from llvm::DominanceFrontierBase< BlockT, false > | |
using | BlockTraits = GraphTraits< BlockT * > |
Protected Attributes inherited from llvm::DominanceFrontierBase< BlockT, false > | |
DomSetMapType | Frontiers |
SmallVector< BlockT *, IsPostDom ? 4 :1 > | Roots |
Static Protected Attributes inherited from llvm::DominanceFrontierBase< BlockT, false > | |
static constexpr bool | IsPostDominators |
DominanceFrontier Class - Concrete subclass of DominanceFrontierBase that is used to compute a forward dominator frontiers.
Definition at line 123 of file DominanceFrontier.h.
using llvm::ForwardDominanceFrontierBase< BlockT >::DomSetType = typename DominanceFrontierBase<BlockT, false>::DomSetType |
Definition at line 131 of file DominanceFrontier.h.
using llvm::ForwardDominanceFrontierBase< BlockT >::DomTreeNodeT = DomTreeNodeBase<BlockT> |
Definition at line 130 of file DominanceFrontier.h.
using llvm::ForwardDominanceFrontierBase< BlockT >::DomTreeT = DomTreeBase<BlockT> |
Definition at line 129 of file DominanceFrontier.h.
|
inline |
Definition at line 133 of file DominanceFrontier.h.
References assert(), llvm::ForwardDominanceFrontierBase< BlockT >::calculate(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getRoot(), llvm::DominatorTreeBase< NodeT, IsPostDom >::root_size(), and llvm::DominanceFrontierBase< BlockT, false >::Roots.
Referenced by llvm::DominanceFrontierWrapperPass::runOnFunction().
const ForwardDominanceFrontierBase< BlockT >::DomSetType & llvm::ForwardDominanceFrontierBase< BlockT >::calculate | ( | const DomTreeT & | DT, |
const DomTreeNodeT * | Node | ||
) |
Definition at line 158 of file DominanceFrontierImpl.h.
References assert(), llvm::DomTreeNodeBase< NodeT >::begin(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::DFCalculateWorkObject< BlockT >::currentBB, llvm::DomTreeNodeBase< NodeT >::end(), llvm::DomTreeNodeBase< NodeT >::getBlock(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::DFCalculateWorkObject< BlockT >::Node, llvm::DFCalculateWorkObject< BlockT >::parentBB, llvm::DFCalculateWorkObject< BlockT >::parentNode, and llvm::DominatorTreeBase< NodeT, IsPostDom >::properlyDominates().
Referenced by llvm::ForwardDominanceFrontierBase< BlockT >::analyze().