LLVM API Documentation

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
class ModulePassManager
class FunctionPassManagerT
class BasicBlockPassManager

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 265 of file Pass.h.


Member Function Documentation

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().

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, and llvm::FunctionPassManagerT.

Referenced by run(), runOnModule(), and llvm::FunctionPassManagerT::runPass().

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::X86SharedAsmPrinter, llvm::X86IntelAsmPrinter, llvm::BasicBlockPassManager, and llvm::FunctionPassManagerT.

Definition at line 280 of file Pass.h.

Referenced by 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.

Implements llvm::ModulePass.

Definition at line 240 of file Pass.cpp.

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

bool FunctionPass::run ( Function F  ) 

run - On a function, we simply initialize, run the function, then finalize.

Definition at line 252 of file Pass.cpp.

References Changed, doFinalization(), doInitialization(), F, and runOnFunction().

Referenced by llvm::FunctionPassManager::run().


Friends And Related Function Documentation

friend class PassManagerT [friend]

Reimplemented from llvm::Pass.

Reimplemented in llvm::BasicBlockPass.

Definition at line 294 of file Pass.h.

friend class ModulePassManager [friend]

Reimplemented from llvm::Pass.

Definition at line 295 of file Pass.h.

friend class FunctionPassManagerT [friend]

Reimplemented from llvm::Pass.

Reimplemented in llvm::BasicBlockPass.

Definition at line 296 of file Pass.h.

friend class BasicBlockPassManager [friend]

Reimplemented from llvm::Pass.

Reimplemented in llvm::BasicBlockPass.

Definition at line 297 of file Pass.h.


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