LLVM API Documentation
#include <Pass.h>
Public Member Functions | |
| FunctionPass (intptr_t pid) | |
| FunctionPass (const void *pid) | |
| virtual bool | doInitialization (Module &) |
| virtual bool | runOnFunction (Function &F)=0 |
| virtual bool | doFinalization (Module &) |
| virtual bool | runOnModule (Module &M) |
| bool | run (Function &F) |
| virtual void | assignPassManager (PMStack &PMS, PassManagerType T=PMT_FunctionPassManager) |
| virtual PassManagerType | getPotentialPassManagerType () const |
| Return what kind of Pass Manager can manage this pass. | |
1. Optimizations are organized globally, i.e., a function at a time 2. Optimizing a function does not cause the addition or removal of any functions in the module
Definition at line 274 of file Pass.h.
| llvm::FunctionPass::FunctionPass | ( | intptr_t | pid | ) | [inline, explicit] |
| llvm::FunctionPass::FunctionPass | ( | const void * | pid | ) | [inline, explicit] |
| virtual bool llvm::FunctionPass::doInitialization | ( | Module & | ) | [inline, virtual] |
doInitialization - Virtual method overridden by subclasses to do any necessary per-module initialization.
Reimplemented in llvm::AsmPrinter, llvm::ELFWriter, llvm::MachOWriter, llvm::PIC16AsmPrinter, llvm::X86ATTAsmPrinter, and llvm::X86IntelAsmPrinter.
Definition at line 282 of file Pass.h.
Referenced by llvm::FPPassManager::doInitialization(), run(), and runOnModule().
| virtual bool llvm::FunctionPass::runOnFunction | ( | Function & | F | ) | [pure virtual] |
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
Implemented in llvm::DominatorTree, llvm::DominanceFrontier, llvm::IntervalPartition, llvm::LibCallAliasAnalysis, llvm::LoopInfo, llvm::LPPassManager, llvm::LoopVR, llvm::MemoryDependenceAnalysis, llvm::PostDominatorTree, llvm::PostDominanceFrontier, llvm::ScalarEvolution, llvm::MachineFunctionPass, llvm::SelectionDAGISel, and llvm::UnifyFunctionExitNodes.
Referenced by run(), llvm::FPPassManager::runOnFunction(), and runOnModule().
| virtual bool llvm::FunctionPass::doFinalization | ( | Module & | ) | [inline, virtual] |
doFinalization - Virtual method overriden by subclasses to do any post processing needed after all passes have run.
Reimplemented in llvm::AsmPrinter, llvm::ELFWriter, llvm::MachOWriter, llvm::PIC16AsmPrinter, llvm::X86ATTAsmPrinter, and llvm::X86IntelAsmPrinter.
Definition at line 292 of file Pass.h.
Referenced by llvm::FPPassManager::doFinalization(), run(), and runOnModule().
| bool FunctionPass::runOnModule | ( | Module & | M | ) | [virtual] |
runOnModule - On a module, we run this pass by initializing, ronOnFunction'ing once for every function in the module, then by finalizing.
Definition at line 84 of file Pass.cpp.
References llvm::Module::begin(), Changed, doFinalization(), doInitialization(), E, llvm::Module::end(), and runOnFunction().
| bool FunctionPass::run | ( | Function & | F | ) |
run - On a function, we simply initialize, run the function, then finalize.
Definition at line 96 of file Pass.cpp.
References Changed, doFinalization(), doInitialization(), llvm::GlobalValue::getParent(), llvm::Function::isDeclaration(), and runOnFunction().
| void FunctionPass::assignPassManager | ( | PMStack & | PMS, | |
| PassManagerType | PreferredType = PMT_FunctionPassManager | |||
| ) | [virtual] |
Find appropriate Function Pass Manager or Call Graph Pass Manager in the PM Stack and add self into that manager.
Reimplemented from llvm::Pass.
Definition at line 1603 of file PassManager.cpp.
References llvm::PMDataManager::add(), llvm::PMTopLevelManager::addIndirectPassManager(), llvm::ModulePass::assignPassManager(), llvm::PMStack::empty(), llvm::PMDataManager::getPassManagerType(), llvm::PMT_FunctionPassManager, llvm::PMStack::pop(), llvm::PMDataManager::populateInheritedAnalysis(), llvm::PMStack::push(), and llvm::PMStack::top().
| virtual PassManagerType llvm::FunctionPass::getPotentialPassManagerType | ( | ) | const [inline, virtual] |
Return what kind of Pass Manager can manage this pass.
Reimplemented from llvm::Pass.
Definition at line 309 of file Pass.h.
References llvm::PMT_FunctionPassManager.