LLVM  8.0.1
Public Types | Public Member Functions | List of all members
llvm::DominanceFrontier Class Reference

#include "llvm/Analysis/DominanceFrontier.h"

Inheritance diagram for llvm::DominanceFrontier:
Inheritance graph
[legend]
Collaboration diagram for llvm::DominanceFrontier:
Collaboration graph
[legend]

Public Types

using DomTreeT = DomTreeBase< BasicBlock >
 
using DomTreeNodeT = DomTreeNodeBase< BasicBlock >
 
using DomSetType = DominanceFrontierBase< BasicBlock, false >::DomSetType
 
using iterator = DominanceFrontierBase< BasicBlock, false >::iterator
 
using const_iterator = DominanceFrontierBase< BasicBlock, false >::const_iterator
 
- Public Types inherited from llvm::ForwardDominanceFrontierBase< BasicBlock >
using DomTreeT = DomTreeBase< BasicBlock >
 
using DomTreeNodeT = DomTreeNodeBase< BasicBlock >
 
using DomSetType = typename DominanceFrontierBase< BasicBlock, false >::DomSetType
 
- Public Types inherited from llvm::DominanceFrontierBase< BasicBlock, false >
using DomSetType = std::set< BasicBlock *>
 
using DomSetMapType = std::map< BasicBlock *, DomSetType >
 
using iterator = typename DomSetMapType::iterator
 
using const_iterator = typename DomSetMapType::const_iterator
 

Public Member Functions

bool invalidate (Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &)
 Handle invalidation explicitly. More...
 
- Public Member Functions inherited from llvm::ForwardDominanceFrontierBase< BasicBlock >
void analyze (DomTreeT &DT)
 
const DomSetTypecalculate (const DomTreeT &DT, const DomTreeNodeT *Node)
 
- Public Member Functions inherited from llvm::DominanceFrontierBase< BasicBlock, false >
 DominanceFrontierBase ()=default
 
const SmallVectorImpl< BasicBlock *> & getRoots () const
 getRoots - Return the root blocks of the current CFG. More...
 
BasicBlockgetRoot () const
 
bool isPostDominator () const
 isPostDominator - Returns true if analysis based of postdoms More...
 
void releaseMemory ()
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
iterator find (BasicBlock *B)
 
const_iterator find (BasicBlock *B) const
 
iterator addBasicBlock (BasicBlock *BB, const DomSetType &frontier)
 
void removeBlock (BasicBlock *BB)
 removeBlock - Remove basic block BB's frontier. More...
 
void addToFrontier (iterator I, BasicBlock *Node)
 
void removeFromFrontier (iterator I, BasicBlock *Node)
 
bool compareDomSet (DomSetType &DS1, const DomSetType &DS2) const
 compareDomSet - Return false if two domsets match. More...
 
bool compare (DominanceFrontierBase &Other) const
 compare - Return true if the other dominance frontier base matches this dominance frontier base. More...
 
void print (raw_ostream &OS) const
 print - Convert to human readable form More...
 
void dump () const
 dump - Dump the dominance frontier to dbgs(). More...
 

Additional Inherited Members

- Protected Types inherited from llvm::DominanceFrontierBase< BasicBlock, false >
using BlockTraits = GraphTraits< BasicBlock *>
 
- Protected Attributes inherited from llvm::DominanceFrontierBase< BasicBlock, false >
DomSetMapType Frontiers
 
SmallVector< BasicBlock *, IsPostDom ? 4 :1 > Roots
 
- Static Protected Attributes inherited from llvm::DominanceFrontierBase< BasicBlock, false >
static constexpr bool IsPostDominators
 

Detailed Description

Definition at line 143 of file DominanceFrontier.h.

Member Typedef Documentation

◆ const_iterator

Definition at line 150 of file DominanceFrontier.h.

◆ DomSetType

Definition at line 147 of file DominanceFrontier.h.

◆ DomTreeNodeT

Definition at line 146 of file DominanceFrontier.h.

◆ DomTreeT

Definition at line 145 of file DominanceFrontier.h.

◆ iterator

Definition at line 148 of file DominanceFrontier.h.

Member Function Documentation

◆ invalidate()

bool DominanceFrontier::invalidate ( Function F,
const PreservedAnalyses PA,
FunctionAnalysisManager::Invalidator  
)

Handle invalidation explicitly.

Definition at line 70 of file DominanceFrontier.cpp.

References llvm::PreservedAnalyses::getChecker().


The documentation for this class was generated from the following files: