LLVM API Documentation
#include <MachineFunctionPass.h>
Protected Member Functions | |
MachineFunctionPass (char &ID) | |
virtual bool | runOnMachineFunction (MachineFunction &MF)=0 |
void | getAnalysisUsage (AnalysisUsage &AU) const override |
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.
llvm::MachineFunctionPass::MachineFunctionPass | ( | char & | ID | ) | [inline, explicit, protected] |
Definition at line 34 of file MachineFunctionPass.h.
void MachineFunctionPass::getAnalysisUsage | ( | AnalysisUsage & | AU | ) | const [override, protected, virtual] |
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::LiveIntervals, llvm::LiveVariables, llvm::AsmPrinter, llvm::MachineDominatorTree, llvm::MachineLoopInfo, llvm::MachineRegionInfoPass, llvm::MachineDominanceFrontier, llvm::LiveStacks, llvm::MachinePostDominatorTree, llvm::MachineTraceMetrics, llvm::VirtRegMap, llvm::SelectionDAGISel, llvm::StackMapLiveness, llvm::MachineBlockFrequencyInfo, and llvm::PEI.
Definition at line 36 of file MachineFunctionPass.cpp.
References llvm::AnalysisUsage::addPreserved(), and llvm::AnalysisUsage::addRequired().
Referenced by llvm::PEI::getAnalysisUsage(), llvm::LiveStacks::getAnalysisUsage(), llvm::LiveVariables::getAnalysisUsage(), and llvm::SlotIndexes::getAnalysisUsage().
virtual bool llvm::MachineFunctionPass::runOnMachineFunction | ( | MachineFunction & | MF | ) | [protected, pure 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::MachineDominatorTree, llvm::X86AsmPrinter, llvm::MachineLoopInfo, llvm::MachineRegionInfoPass, llvm::MipsAsmPrinter, llvm::MachineDominanceFrontier, llvm::LiveStacks, llvm::MachineTraceMetrics, llvm::MachinePostDominatorTree, llvm::ARMAsmPrinter, llvm::VirtRegMap, llvm::AMDGPUAsmPrinter, llvm::SelectionDAGISel, llvm::StackMapLiveness, llvm::MipsModuleDAGToDAGISel, llvm::PEI, llvm::MachineBlockFrequencyInfo, and llvm::MipsDAGToDAGISel.