LLVM API Documentation
#include <Pass.h>
Inheritance diagram for llvm::FunctionPass:
Public Member Functions | |
virtual bool | doInitialization (Module &M) |
virtual bool | runOnFunction (Function &F)=0 |
virtual bool | doFinalization (Module &M) |
virtual bool | runOnModule (Module &M) |
bool | run (Function &F) |
Friends | |
class | PassManagerT< Module > |
class | PassManagerT< Function > |
class | PassManagerT< BasicBlock > |
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 259 of file Pass.h.
|
doFinalization - Virtual method overriden by subclasses to do any post processing needed after all passes have run. Reimplemented in llvm::AsmPrinter, llvm::BasicBlockPass, llvm::PhyRegAlloc, llvm::PassManagerTraits< BasicBlock >, and llvm::PassManagerTraits< Function >. Definition at line 274 of file Pass.h. Referenced by run(), and runOnModule(). |
|
doInitialization - Virtual method overridden by subclasses to do any necessary per-module initialization. Reimplemented in llvm::AsmPrinter, llvm::BasicBlockPass, llvm::PassManagerTraits< BasicBlock >, and llvm::PassManagerTraits< Function >. Definition at line 264 of file Pass.h. Referenced by run(), and runOnModule(). |
|
run - On a function, we simply initialize, run the function, then finalize. Definition at line 257 of file Pass.cpp. References doFinalization(), doInitialization(), llvm::GlobalValue::getParent(), llvm::Function::isExternal(), and runOnFunction(). Referenced by llvm::FunctionPassManager::run(). |
|
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass. Implemented in llvm::ImmediateDominators, llvm::DominatorSet, llvm::DominatorTree, llvm::DominanceFrontier, llvm::IntervalPartition, llvm::LoopInfo, llvm::PostDominatorSet, llvm::ImmediatePostDominators, llvm::PostDominatorTree, llvm::PostDominanceFrontier, llvm::ScalarEvolution, llvm::PrintFunctionPass, llvm::MachineFunctionPass, llvm::BasicBlockPass, llvm::UnifyFunctionExitNodes, llvm::FunctionLiveVarInfo, llvm::ModuloSchedulingPass, llvm::PhyRegAlloc, llvm::ProfilePaths, and llvm::PassManagerTraits< Function >. Referenced by run(), runOnModule(), and llvm::PassManagerTraits< Function >::runPass(). |
|
runOnModule - On a module, we run this pass by initializing, ronOnFunction'ing once for every function in the module, then by finalizing. Implements llvm::ModulePass. Definition at line 245 of file Pass.cpp. References llvm::Module::begin(), doFinalization(), doInitialization(), E, llvm::Module::end(), I, and runOnFunction(). |
|
Reimplemented from llvm::Pass. Reimplemented in llvm::BasicBlockPass. |
|
Reimplemented from llvm::Pass. Reimplemented in llvm::BasicBlockPass. |
|
Reimplemented from llvm::Pass. |