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

 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.

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


Constructor & Destructor Documentation

llvm::FunctionPass::FunctionPass intptr_t  pid  )  [inline, explicit]
 

Definition at line 273 of file Pass.h.

llvm::FunctionPass::FunctionPass const void *  pid  )  [inline, explicit]
 

Definition at line 274 of file Pass.h.


Member Function Documentation

void FunctionPass::assignPassManager PMStack PMS,
PassManagerType  PreferredType = PMT_FunctionPassManager
[virtual]
 

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

virtual bool llvm::FunctionPass::doFinalization Module  )  [inline, virtual]
 

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

virtual bool llvm::FunctionPass::doInitialization Module  )  [inline, virtual]
 

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

virtual PassManagerType llvm::FunctionPass::getPotentialPassManagerType  )  const [inline, virtual]
 

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.

bool FunctionPass::run Function F  ) 
 

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

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::DominatorTree, llvm::DominanceFrontier, llvm::IntervalPartition, llvm::LibCallAliasAnalysis, llvm::LoopInfo, llvm::LPPassManager, llvm::LoopVR, llvm::MemoryDependenceAnalysis, llvm::PostDominatorTree, llvm::PostDominanceFrontier, llvm::ScalarEvolution, llvm::PrintFunctionPass, llvm::MachineFunctionPass, llvm::SelectionDAGISel, llvm::UnifyFunctionExitNodes, AAEval, AliasSetPrinter, CFGViewer, CFGOnlyViewer, CFGPrinter, CFGOnlyPrinter, InstCount, Printer, Deleter, LowerIntrinsics, CWriter, SPUDAGToDAGISel, IA64DAGToDAGISel, MSILWriter, PPCDAGToDAGISel, X86DAGToDAGISel, Hello, Hello2, ProfilerRS, LoopExtractor, ADCE, BlockPlacement, CodeGenPrepare, CondProp, ConstantPropagation, DCE, DSE, InstCombiner, JumpThreading, MarkModRef, PredicateSimplifier, Reassociate, RegToMem, SROA, SCCP, CFGSimplifyPass, SimplifyLibCalls, TailCallElim, BreakCriticalEdges, InstNamer, LoopSimplify, LowerInvoke, LowerSwitch, PromotePass, BBPassManager, PreVerifier, and Verifier.

Referenced by run(), llvm::FPPassManager::runOnFunction(), 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.

Definition at line 84 of file Pass.cpp.

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


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


This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.