9#ifndef LLVM_CODEGEN_MACHINEDOMINANCEFRONTIER_H
10#define LLVM_CODEGEN_MACHINEDOMINANCEFRONTIER_H
41 return Base.getRoots();
45 return Base.getRoot();
49 return Base.isPostDominator();
77 return Base.addBasicBlock(BB, frontier);
81 return Base.removeBlock(BB);
93 return Base.compareDomSet(DS1, DS2);
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
This file defines a set of templates that efficiently compute a dominator tree over a generic graph.
Represent the analysis usage information of a pass.
Base class for the actual dominator tree node.
DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a...
typename DomSetMapType::iterator iterator
typename DomSetMapType::const_iterator const_iterator
Core dominator tree base class.
DominanceFrontier Class - Concrete subclass of DominanceFrontierBase that is used to compute a forwar...
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
MachineBasicBlock * getRoot() const
const_iterator find(MachineBasicBlock *B) const
iterator addBasicBlock(MachineBasicBlock *BB, const DomSetType &frontier)
bool compare(DominanceFrontierBase< MachineBasicBlock, false > &Other) const
DominanceFrontierBase< MachineBasicBlock, false >::iterator iterator
void removeBlock(MachineBasicBlock *BB)
void addToFrontier(iterator I, MachineBasicBlock *Node)
const SmallVectorImpl< MachineBasicBlock * > & getRoots() const
iterator find(MachineBasicBlock *B)
const_iterator end() const
bool runOnMachineFunction(MachineFunction &F) override
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...
MachineDominanceFrontier()
bool isPostDominator() const
ForwardDominanceFrontierBase< MachineBasicBlock > & getBase()
MachineDominanceFrontier(const MachineDominanceFrontier &)=delete
const_iterator begin() const
void releaseMemory() override
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memo...
void removeFromFrontier(iterator I, MachineBasicBlock *Node)
bool compareDomSet(DomSetType &DS1, const DomSetType &DS2) const
DominanceFrontierBase< MachineBasicBlock, false >::const_iterator const_iterator
MachineDominanceFrontier & operator=(const MachineDominanceFrontier &)=delete
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
A vector that has set insertion semantics.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This is an optimization pass for GlobalISel generic memory operations.