LLVM API Documentation
#include <MachineFunctionPass.h>
Protected Member Functions | |
MachineFunctionPass (char &ID) | |
virtual bool | runOnMachineFunction (MachineFunction &MF)=0 |
virtual void | getAnalysisUsage (AnalysisUsage &AU) const |
Additional Inherited Members | |
![]() | |
FunctionPass (char &pid) | |
Pass * | createPrinterPass (raw_ostream &O, const std::string &Banner) const |
createPrinterPass - Get a function printer pass. More... | |
virtual void | assignPassManager (PMStack &PMS, PassManagerType T) |
virtual PassManagerType | getPotentialPassManagerType () const |
Return what kind of Pass Manager can manage this pass. More... | |
![]() | |
Pass (PassKind K, char &pid) | |
virtual | ~Pass () |
PassKind | getPassKind () const |
virtual const char * | getPassName () const |
AnalysisID | getPassID () const |
getPassID - Return the PassID number that corresponds to this pass. More... | |
virtual bool | doInitialization (Module &) |
virtual bool | doFinalization (Module &) |
virtual void | print (raw_ostream &O, const Module *M) const |
void | dump () const |
virtual void | preparePassManager (PMStack &) |
Check if available pass managers are suitable for this pass or not. More... | |
void | setResolver (AnalysisResolver *AR) |
AnalysisResolver * | getResolver () const |
virtual void | releaseMemory () |
virtual void * | getAdjustedAnalysisPointer (AnalysisID ID) |
virtual ImmutablePass * | getAsImmutablePass () |
virtual PMDataManager * | getAsPMDataManager () |
virtual void | verifyAnalysis () const |
virtual void | dumpPassStructure (unsigned Offset=0) |
template<typename AnalysisType > | |
AnalysisType * | getAnalysisIfAvailable () const |
bool | mustPreserveAnalysisID (char &AID) const |
template<typename AnalysisType > | |
AnalysisType & | getAnalysis () const |
template<typename AnalysisType > | |
AnalysisType & | getAnalysis (Function &F) |
template<typename AnalysisType > | |
AnalysisType & | getAnalysisID (AnalysisID PI) const |
template<typename AnalysisType > | |
AnalysisType & | getAnalysisID (AnalysisID PI, Function &F) |
![]() | |
static const PassInfo * | lookupPassInfo (const void *TI) |
static const PassInfo * | lookupPassInfo (StringRef Arg) |
static Pass * | createPass (AnalysisID ID) |
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of passes that operate on the MachineFunction representation. Instead of overriding runOnFunction, subclasses override runOnMachineFunction.
Definition at line 32 of file MachineFunctionPass.h.
|
inlineexplicitprotected |
Definition at line 34 of file MachineFunctionPass.h.
|
protectedvirtual |
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.
For MachineFunctionPasses, calling AU.preservesCFG() indicates that the pass does not modify the MachineBasicBlock CFG.
Reimplemented from llvm::Pass.
Reimplemented in llvm::SlotIndexes, llvm::LiveVariables, llvm::LiveIntervals, llvm::AsmPrinter, llvm::MachineLoopInfo, llvm::LiveStacks, llvm::MachinePostDominatorTree, llvm::MachineTraceMetrics, llvm::VirtRegMap, llvm::SelectionDAGISel, llvm::MachineDominatorTree, llvm::MachineBlockFrequencyInfo, and llvm::PEI.
Definition at line 36 of file MachineFunctionPass.cpp.
References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addRequired(), and llvm::Pass::getAnalysisUsage().
Referenced by llvm::PEI::getAnalysisUsage(), llvm::MachineBlockFrequencyInfo::getAnalysisUsage(), llvm::SelectionDAGISel::getAnalysisUsage(), llvm::VirtRegMap::getAnalysisUsage(), llvm::MachineTraceMetrics::getAnalysisUsage(), llvm::MachinePostDominatorTree::getAnalysisUsage(), llvm::LiveStacks::getAnalysisUsage(), llvm::MachineLoopInfo::getAnalysisUsage(), llvm::AsmPrinter::getAnalysisUsage(), llvm::LiveIntervals::getAnalysisUsage(), llvm::LiveVariables::getAnalysisUsage(), and llvm::SlotIndexes::getAnalysisUsage().
|
protectedpure virtual |
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformation or analysis.
Implemented in llvm::SlotIndexes, llvm::LiveIntervals, llvm::LiveVariables, llvm::AsmPrinter, llvm::MachineLoopInfo, llvm::LiveStacks, llvm::X86AsmPrinter, llvm::MachinePostDominatorTree, llvm::MachineTraceMetrics, llvm::VirtRegMap, llvm::MipsAsmPrinter, llvm::AArch64AsmPrinter, llvm::MachineDominatorTree, llvm::ARMAsmPrinter, llvm::SelectionDAGISel, llvm::MipsModuleDAGToDAGISel, llvm::PEI, llvm::MachineBlockFrequencyInfo, llvm::MipsDAGToDAGISel, and llvm::AMDGPUAsmPrinter.