class DominanceFrontierBase
Declaration
template <class BlockT, bool IsPostDom>
class DominanceFrontierBase { /* full declaration omitted */ };
Description
DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a function.
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:41
Templates
- BlockT
- bool IsPostDom
Member Variables
- protected llvm::DominanceFrontierBase::DomSetMapType Frontiers
- protected SmallVector<BlockT*, IsPostDom ? 4 : 1> Roots
- protected static const bool IsPostDominators = IsPostDom
Method Overview
- public DominanceFrontierBase<BlockT, IsPostDom>()
- public llvm::DominanceFrontierBase::iterator addBasicBlock(BlockT * BB, const llvm::DominanceFrontierBase::DomSetType & frontier)
- public void addToFrontier(llvm::DominanceFrontierBase::iterator I, BlockT * Node)
- public llvm::DominanceFrontierBase::iterator begin()
- public llvm::DominanceFrontierBase::const_iterator begin() const
- public bool compare(DominanceFrontierBase<BlockT, IsPostDom> & Other) const
- public bool compareDomSet(llvm::DominanceFrontierBase::DomSetType & DS1, const llvm::DominanceFrontierBase::DomSetType & DS2) const
- public void dump() const
- public llvm::DominanceFrontierBase::iterator end()
- public llvm::DominanceFrontierBase::const_iterator end() const
- public llvm::DominanceFrontierBase::iterator find(BlockT * B)
- public llvm::DominanceFrontierBase::const_iterator find(BlockT * B) const
- public BlockT * getRoot() const
- public const SmallVectorImpl<BlockT *> & getRoots() const
- public bool isPostDominator() const
- public void print(llvm::raw_ostream & OS) const
- public void releaseMemory()
- public void removeBlock(BlockT * BB)
- public void removeFromFrontier(llvm::DominanceFrontierBase::iterator I, BlockT * Node)
Methods
¶DominanceFrontierBase<BlockT, IsPostDom>()
DominanceFrontierBase<BlockT, IsPostDom>()
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:55
¶llvm::DominanceFrontierBase::iterator
addBasicBlock(
BlockT* BB,
const llvm::DominanceFrontierBase::DomSetType&
frontier)
llvm::DominanceFrontierBase::iterator
addBasicBlock(
BlockT* BB,
const llvm::DominanceFrontierBase::DomSetType&
frontier)
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:87
Parameters
- BlockT* BB
- const llvm::DominanceFrontierBase::DomSetType& frontier
¶void addToFrontier(
llvm::DominanceFrontierBase::iterator I,
BlockT* Node)
void addToFrontier(
llvm::DominanceFrontierBase::iterator I,
BlockT* Node)
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:95
Parameters
- llvm::DominanceFrontierBase::iterator I
- BlockT* Node
¶llvm::DominanceFrontierBase::iterator begin()
llvm::DominanceFrontierBase::iterator begin()
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:80
¶llvm::DominanceFrontierBase::const_iterator
begin() const
llvm::DominanceFrontierBase::const_iterator
begin() const
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:81
¶bool compare(
DominanceFrontierBase<BlockT, IsPostDom>&
Other) const
bool compare(
DominanceFrontierBase<BlockT, IsPostDom>&
Other) const
Description
compare - Return true if the other dominance frontier base matches this dominance frontier base. Otherwise return false.
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:105
Parameters
- DominanceFrontierBase<BlockT, IsPostDom>& Other
¶bool compareDomSet(
llvm::DominanceFrontierBase::DomSetType& DS1,
const llvm::DominanceFrontierBase::DomSetType&
DS2) const
bool compareDomSet(
llvm::DominanceFrontierBase::DomSetType& DS1,
const llvm::DominanceFrontierBase::DomSetType&
DS2) const
Description
compareDomSet - Return false if two domsets match. Otherwise return true;
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:101
Parameters
- llvm::DominanceFrontierBase::DomSetType& DS1
- const llvm::DominanceFrontierBase::DomSetType& DS2
¶void dump() const
void dump() const
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:113
¶llvm::DominanceFrontierBase::iterator end()
llvm::DominanceFrontierBase::iterator end()
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:82
¶llvm::DominanceFrontierBase::const_iterator end()
const
llvm::DominanceFrontierBase::const_iterator end()
const
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:83
¶llvm::DominanceFrontierBase::iterator find(
BlockT* B)
llvm::DominanceFrontierBase::iterator find(
BlockT* B)
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:84
Parameters
- BlockT* B
¶llvm::DominanceFrontierBase::const_iterator find(
BlockT* B) const
llvm::DominanceFrontierBase::const_iterator find(
BlockT* B) const
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:85
Parameters
- BlockT* B
¶BlockT* getRoot() const
BlockT* getRoot() const
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:62
¶const SmallVectorImpl<BlockT*>& getRoots() const
const SmallVectorImpl<BlockT*>& getRoots() const
Description
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).
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:60
¶bool isPostDominator() const
bool isPostDominator() const
Description
isPostDominator - Returns true if analysis based of postdoms
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:68
¶void print(llvm::raw_ostream& OS) const
void print(llvm::raw_ostream& OS) const
Description
print - Convert to human readable form
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:109
Parameters
¶void releaseMemory()
void releaseMemory()
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:72
¶void removeBlock(BlockT* BB)
void removeBlock(BlockT* BB)
Description
removeBlock - Remove basic block BB's frontier.
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:93
Parameters
- BlockT* BB
¶void removeFromFrontier(
llvm::DominanceFrontierBase::iterator I,
BlockT* Node)
void removeFromFrontier(
llvm::DominanceFrontierBase::iterator I,
BlockT* Node)
Declared at: llvm/include/llvm/Analysis/DominanceFrontier.h:97
Parameters
- llvm::DominanceFrontierBase::iterator I
- BlockT* Node