LLVM API Documentation
#include <Pass.h>
Inheritance diagram for llvm::FunctionPass:


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 271 of file Pass.h.
|
|
|
|
|
|
|
||||||||||||
|
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 1590 of file PassManager.cpp. References llvm::PMDataManager::add(), llvm::PMTopLevelManager::addIndirectPassManager(), llvm::ModulePass::assignPassManager(), llvm::PMStack::empty(), llvm::PMDataManager::getDepth(), llvm::PMDataManager::getPassManagerType(), llvm::PMDataManager::getTopLevelManager(), llvm::PMT_CallGraphPassManager, llvm::PMStack::pop(), llvm::PMDataManager::populateInheritedAnalysis(), llvm::PMStack::push(), and llvm::PMStack::top(). Referenced by llvm::BasicBlockPass::assignPassManager(). |
|
|
doFinalization - Virtual method overriden by subclasses to do any post processing needed after all passes have run. Reimplemented in llvm::AsmPrinter, AAEval, llvm::ELFWriter, Deleter, llvm::MachOWriter, AlphaAsmPrinter, ARMAsmPrinter, CWriter, SPUAsmPrinter, LinuxAsmPrinter, IA64AsmPrinter, MipsAsmPrinter, MSILWriter, PIC16AsmPrinter, PPCAsmPrinter, PPCLinuxAsmPrinter, PPCDarwinAsmPrinter, SparcAsmPrinter, llvm::X86ATTAsmPrinter, llvm::X86IntelAsmPrinter, BBPassManager, and Verifier. Definition at line 289 of file Pass.h. Referenced by llvm::FPPassManager::doFinalization(), run(), and runOnModule(). |
|
|
doInitialization - Virtual method overridden by subclasses to do any necessary per-module initialization. Reimplemented in llvm::AsmPrinter, AAEval, llvm::ELFWriter, LowerIntrinsics, llvm::MachOWriter, AlphaAsmPrinter, ARMAsmPrinter, CWriter, LinuxAsmPrinter, IA64AsmPrinter, MipsAsmPrinter, MSILWriter, PIC16AsmPrinter, PPCLinuxAsmPrinter, PPCDarwinAsmPrinter, SparcAsmPrinter, llvm::X86ATTAsmPrinter, llvm::X86IntelAsmPrinter, ProfilerRS, LowerInvoke, BBPassManager, and Verifier. Definition at line 279 of file Pass.h. Referenced by llvm::FPPassManager::doInitialization(), run(), and runOnModule(). |
|
|
Return what kind of Pass Manager can manage this pass.
Reimplemented from llvm::Pass. Definition at line 306 of file Pass.h. References llvm::PassManagerType. |
|
|
run - On a function, we simply initialize, run the function, then finalize. Definition at line 96 of file Pass.cpp. References doFinalization(), doInitialization(), llvm::GlobalValue::getParent(), llvm::Function::isDeclaration(), and runOnFunction(). Referenced by LLVMRunFunctionPassManager(), and LLVMRunPassManager(). |
|
|
|
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 Module::begin(), doFinalization(), doInitialization(), Module::end(), and runOnFunction(). |