10 #ifndef LLVM_CODEGEN_MACHINEDOMINANCEFRONTIER_H 11 #define LLVM_CODEGEN_MACHINEDOMINANCEFRONTIER_H 111 #endif // LLVM_CODEGEN_MACHINEDOMINANCEFRONTIER_H
const SmallVectorImpl< MachineBasicBlock * > & getRoots() const
This class represents lattice values for constants.
void addToFrontier(iterator I, BlockT *Node)
DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a...
bool isPostDominator() const
isPostDominator - Returns true if analysis based of postdoms
typename DomSetMapType::const_iterator const_iterator
DominanceFrontierBase< MachineBasicBlock, false >::const_iterator const_iterator
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
const_iterator end() const
const SmallVectorImpl< BlockT *> & getRoots() const
getRoots - Return the root blocks of the current CFG.
Base class for the actual dominator tree node.
void removeFromFrontier(iterator I, BlockT *Node)
Core dominator tree base class.
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
Represent the analysis usage information of a pass.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
std::set< BlockT * > DomSetType
const_iterator find(MachineBasicBlock *B) const
bool compare(DominanceFrontierBase &Other) const
compare - Return true if the other dominance frontier base matches this dominance frontier base...
DominanceFrontierBase< MachineBasicBlock, false >::iterator iterator
MachineDominanceFrontier()
iterator find(MachineBasicBlock *B)
bool compare(DominanceFrontierBase< MachineBasicBlock, false > &Other) const
void releaseMemory() override
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memo...
MachineDominanceFrontier & operator=(const MachineDominanceFrontier &)=delete
MachineBasicBlock * getRoot() const
iterator addBasicBlock(BlockT *BB, const DomSetType &frontier)
DominanceFrontierBase< MachineBasicBlock, false >::DomSetType DomSetType
const_iterator begin() const
bool runOnMachineFunction(MachineFunction &F) override
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...
void removeBlock(BlockT *BB)
removeBlock - Remove basic block BB's frontier.
void removeFromFrontier(iterator I, MachineBasicBlock *Node)
void removeBlock(MachineBasicBlock *BB)
ForwardDominanceFrontierBase< MachineBasicBlock > & getBase()
This file defines a set of templates that efficiently compute a dominator tree over a generic graph...
bool compareDomSet(DomSetType &DS1, const DomSetType &DS2) const
compareDomSet - Return false if two domsets match.
typename DomSetMapType::iterator iterator
void addToFrontier(iterator I, MachineBasicBlock *Node)
iterator addBasicBlock(MachineBasicBlock *BB, const DomSetType &frontier)
bool compareDomSet(DomSetType &DS1, const DomSetType &DS2) const
DominanceFrontier Class - Concrete subclass of DominanceFrontierBase that is used to compute a forwar...
bool isPostDominator() const