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 |
class | ModulePassManager |
class | FunctionPassManagerT |
class | BasicBlockPassManager |
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 265 of file Pass.h.
virtual bool llvm::FunctionPass::doFinalization | ( | Module & | M | ) | [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::BasicBlockPass, llvm::PhyRegAlloc, llvm::X86SharedAsmPrinter, llvm::BasicBlockPassManager, and llvm::FunctionPassManagerT.
Definition at line 280 of file Pass.h.
Referenced by run(), and runOnModule().
virtual bool llvm::FunctionPass::doInitialization | ( | Module & | M | ) | [inline, virtual] |
doInitialization - Virtual method overridden by subclasses to do any necessary per-module initialization.
Reimplemented in llvm::AsmPrinter, llvm::ELFWriter, llvm::BasicBlockPass, llvm::X86SharedAsmPrinter, llvm::X86IntelAsmPrinter, llvm::BasicBlockPassManager, and llvm::FunctionPassManagerT.
Definition at line 270 of file Pass.h.
Referenced by run(), and runOnModule().
bool FunctionPass::run | ( | Function & | F | ) |
run - On a function, we simply initialize, run the function, then finalize.
Definition at line 259 of file Pass.cpp.
References Changed, doFinalization(), doInitialization(), F, and runOnFunction().
Referenced by llvm::FunctionPassManager::run().
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::ImmediateDominators, llvm::DominatorSet, llvm::ETForest, llvm::DominatorTree, llvm::DominanceFrontier, llvm::IntervalPartition, llvm::LoopInfo, llvm::ImmediatePostDominators, llvm::PostDominatorSet, llvm::PostDominatorTree, llvm::PostETForest, llvm::PostDominanceFrontier, llvm::ScalarEvolution, llvm::PrintFunctionPass, llvm::MachineFunctionPass, llvm::SelectionDAGISel, llvm::BasicBlockPass, llvm::UnifyFunctionExitNodes, llvm::FunctionLiveVarInfo, llvm::DependenceAnalyzer, llvm::ModuloSchedulingPass, llvm::ModuloSchedulingSBPass, llvm::PhyRegAlloc, and llvm::FunctionPassManagerT.
Referenced by run(), runOnModule(), and llvm::FunctionPassManagerT::runPass().
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.
Implements llvm::ModulePass.
Definition at line 247 of file Pass.cpp.
References llvm::Module::begin(), Changed, doFinalization(), doInitialization(), E, llvm::Module::end(), I, M, and runOnFunction().
friend class BasicBlockPassManager [friend] |
friend class FunctionPassManagerT [friend] |
friend class ModulePassManager [friend] |
friend class PassManagerT [friend] |