10 #ifndef LLVM_CODEGEN_MACHINEDOMINANCEFRONTIER_H
11 #define LLVM_CODEGEN_MACHINEDOMINANCEFRONTIER_H
40 inline const std::vector<MachineBasicBlock*> &
getRoots()
const {
41 return Base.getRoots();
45 return Base.getRoot();
49 return Base.isPostDominator();
77 return Base.addBasicBlock(BB, frontier);
81 return Base.removeBlock(BB);
85 return Base.addToFrontier(I, Node);
89 return Base.removeFromFrontier(I, Node);
93 return Base.compareDomSet(DS1, DS2);
97 return Base.compare(Other);
const_iterator find(MachineBasicBlock *B) const
MachineBasicBlock * getRoot() const
std::set< BlockT * > DomSetType
bool isPostDominator() const
DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a...
const_iterator end() const
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
DominanceFrontierBase< MachineBasicBlock >::DomSetType DomSetType
const std::vector< MachineBasicBlock * > & getRoots() const
Base class for the actual dominator tree node.
static GCRegistry::Add< OcamlGC > B("ocaml","ocaml 3.10-compatible GC")
Core dominator tree base class.
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...
bool compare(DominanceFrontierBase< MachineBasicBlock > &Other) const
MachineDominanceFrontier()
DomTreeNodeBase< MachineBasicBlock > DomTreeNodeT
iterator find(MachineBasicBlock *B)
void releaseMemory() override
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memo...
bool compareDomSet(DomSetType &DS1, const DomSetType &DS2) const
DominanceFrontierBase< MachineBasicBlock > & getBase()
DomSetMapType::iterator iterator
bool runOnMachineFunction(MachineFunction &F) override
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...
void removeFromFrontier(iterator I, MachineBasicBlock *Node)
void removeBlock(MachineBasicBlock *BB)
const_iterator begin() const
DominanceFrontierBase< MachineBasicBlock >::iterator iterator
DomSetMapType::const_iterator const_iterator
DominatorTreeBase< MachineBasicBlock > DomTreeT
DominanceFrontierBase< MachineBasicBlock >::const_iterator const_iterator
void addToFrontier(iterator I, MachineBasicBlock *Node)
iterator addBasicBlock(MachineBasicBlock *BB, const DomSetType &frontier)
DominanceFrontier Class - Concrete subclass of DominanceFrontierBase that is used to compute a forwar...
void operator=(const MachineDominanceFrontier &)=delete