LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::FunctionPass Class Reference

#include <Pass.h>

Inheritance diagram for llvm::FunctionPass:

Inheritance graph
[legend]
Collaboration diagram for llvm::FunctionPass:

Collaboration graph
[legend]
List of all members.

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 >

Detailed Description

FunctionPass class - This class is used to implement most global optimizations. Optimizations should subclass this class if they meet the following constraints:

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.


Member Function Documentation

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::BasicBlockPass, llvm::PhyRegAlloc, llvm::PassManagerTraits< BasicBlock >, and llvm::PassManagerTraits< Function >.

Definition at line 274 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::BasicBlockPass, llvm::PassManagerTraits< BasicBlock >, and llvm::PassManagerTraits< Function >.

Definition at line 264 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 257 of file Pass.cpp.

References doFinalization(), doInitialization(), llvm::GlobalValue::getParent(), llvm::Function::isExternal(), 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::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().

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 245 of file Pass.cpp.

References llvm::Module::begin(), doFinalization(), doInitialization(), E, llvm::Module::end(), I, and runOnFunction().


Friends And Related Function Documentation

friend class PassManagerT< BasicBlock > [friend]
 

Reimplemented from llvm::Pass.

Reimplemented in llvm::BasicBlockPass.

Definition at line 290 of file Pass.h.

friend class PassManagerT< Function > [friend]
 

Reimplemented from llvm::Pass.

Reimplemented in llvm::BasicBlockPass.

Definition at line 289 of file Pass.h.

friend class PassManagerT< Module > [friend]
 

Reimplemented from llvm::Pass.

Definition at line 288 of file Pass.h.


The documentation for this class was generated from the following files: