LLVM 20.0.0git
|
DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a function. More...
#include "llvm/Analysis/DominanceFrontier.h"
Public Types | |
using | DomSetType = SetVector< BlockT * > |
using | DomSetMapType = DenseMap< BlockT *, DomSetType > |
using | iterator = typename DomSetMapType::iterator |
using | const_iterator = typename DomSetMapType::const_iterator |
Public Member Functions | |
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 |
void | print (raw_ostream &OS) const |
print - Convert to human readable form | |
void | dump () const |
dump - Dump the dominance frontier to dbgs(). | |
Protected Types | |
using | BlockTraits = GraphTraits< BlockT * > |
Protected Attributes | |
DomSetMapType | Frontiers |
SmallVector< BlockT *, IsPostDom ? 4 :1 > | Roots |
Static Protected Attributes | |
static constexpr bool | IsPostDominators = IsPostDom |
DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a function.
Definition at line 40 of file DominanceFrontier.h.
|
protected |
Definition at line 48 of file DominanceFrontier.h.
using llvm::DominanceFrontierBase< BlockT, IsPostDom >::const_iterator = typename DomSetMapType::const_iterator |
Definition at line 79 of file DominanceFrontier.h.
using llvm::DominanceFrontierBase< BlockT, IsPostDom >::DomSetMapType = DenseMap<BlockT *, DomSetType> |
Definition at line 45 of file DominanceFrontier.h.
using llvm::DominanceFrontierBase< BlockT, IsPostDom >::DomSetType = SetVector<BlockT *> |
Definition at line 44 of file DominanceFrontier.h.
using llvm::DominanceFrontierBase< BlockT, IsPostDom >::iterator = typename DomSetMapType::iterator |
Definition at line 78 of file DominanceFrontier.h.
|
default |
|
inline |
Definition at line 81 of file DominanceFrontier.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::begin(), and llvm::DominanceFrontierBase< BlockT, IsPostDom >::Frontiers.
|
inline |
Definition at line 82 of file DominanceFrontier.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::begin(), and llvm::DominanceFrontierBase< BlockT, IsPostDom >::Frontiers.
void llvm::DominanceFrontierBase< BlockT, IsPostDom >::dump |
dump - Dump the dominance frontier to dbgs().
Definition at line 73 of file DominanceFrontierImpl.h.
References llvm::dbgs(), and llvm::print().
|
inline |
Definition at line 83 of file DominanceFrontier.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DominanceFrontierBase< BlockT, IsPostDom >::Frontiers.
|
inline |
Definition at line 84 of file DominanceFrontier.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DominanceFrontierBase< BlockT, IsPostDom >::Frontiers.
|
inline |
Definition at line 85 of file DominanceFrontier.h.
References B, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and llvm::DominanceFrontierBase< BlockT, IsPostDom >::Frontiers.
|
inline |
Definition at line 86 of file DominanceFrontier.h.
References B, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and llvm::DominanceFrontierBase< BlockT, IsPostDom >::Frontiers.
|
inline |
Definition at line 63 of file DominanceFrontier.h.
References assert(), llvm::DominanceFrontierBase< BlockT, IsPostDom >::Roots, and llvm::SmallVectorBase< Size_T >::size().
|
inline |
getRoots - Return the root blocks of the current CFG.
This may include multiple blocks if we are computing post dominators. For forward dominators, this will always be a single block (the entry node).
Definition at line 61 of file DominanceFrontier.h.
References llvm::DominanceFrontierBase< BlockT, IsPostDom >::Roots.
|
inline |
isPostDominator - Returns true if analysis based of postdoms
Definition at line 69 of file DominanceFrontier.h.
References llvm::DominanceFrontierBase< BlockT, IsPostDom >::IsPostDominators.
void llvm::DominanceFrontierBase< BlockT, IsPostDom >::print | ( | raw_ostream & | OS | ) | const |
print - Convert to human readable form
Definition at line 49 of file DominanceFrontierImpl.h.
Referenced by llvm::DominanceFrontierWrapperPass::print().
|
inline |
Definition at line 73 of file DominanceFrontier.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), and llvm::DominanceFrontierBase< BlockT, IsPostDom >::Frontiers.
Referenced by llvm::DominanceFrontierWrapperPass::releaseMemory().
|
protected |
Definition at line 50 of file DominanceFrontier.h.
Referenced by llvm::DominanceFrontierBase< BlockT, IsPostDom >::begin(), llvm::DominanceFrontierBase< BlockT, IsPostDom >::end(), llvm::DominanceFrontierBase< BlockT, IsPostDom >::find(), and llvm::DominanceFrontierBase< BlockT, IsPostDom >::releaseMemory().
|
staticconstexprprotected |
Definition at line 53 of file DominanceFrontier.h.
Referenced by llvm::DominanceFrontierBase< BlockT, IsPostDom >::isPostDominator().
|
protected |
Definition at line 52 of file DominanceFrontier.h.
Referenced by llvm::DominanceFrontierBase< BlockT, IsPostDom >::getRoot(), and llvm::DominanceFrontierBase< BlockT, IsPostDom >::getRoots().