LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::FunctionPass Class Referenceabstract

#include <Pass.h>

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

Public Member Functions

 FunctionPass (char &pid)
 
PasscreatePrinterPass (raw_ostream &O, const std::string &Banner) const
 createPrinterPass - Get a function printer pass. More...
 
virtual bool runOnFunction (Function &F)=0
 
virtual void assignPassManager (PMStack &PMS, PassManagerType T)
 
virtual PassManagerType getPotentialPassManagerType () const
 Return what kind of Pass Manager can manage this pass. More...
 
- Public Member Functions inherited from llvm::Pass
 Pass (PassKind K, char &pid)
 
virtual ~Pass ()
 
PassKind getPassKind () const
 
virtual const char * getPassName () const
 
AnalysisID getPassID () const
 getPassID - Return the PassID number that corresponds to this pass. More...
 
virtual bool doInitialization (Module &)
 
virtual bool doFinalization (Module &)
 
virtual void print (raw_ostream &O, const Module *M) const
 
void dump () const
 
virtual void preparePassManager (PMStack &)
 Check if available pass managers are suitable for this pass or not. More...
 
void setResolver (AnalysisResolver *AR)
 
AnalysisResolvergetResolver () const
 
virtual void getAnalysisUsage (AnalysisUsage &) const
 
virtual void releaseMemory ()
 
virtual void * getAdjustedAnalysisPointer (AnalysisID ID)
 
virtual ImmutablePassgetAsImmutablePass ()
 
virtual PMDataManagergetAsPMDataManager ()
 
virtual void verifyAnalysis () const
 
virtual void dumpPassStructure (unsigned Offset=0)
 
template<typename AnalysisType >
AnalysisType * getAnalysisIfAvailable () const
 
bool mustPreserveAnalysisID (char &AID) const
 
template<typename AnalysisType >
AnalysisType & getAnalysis () const
 
template<typename AnalysisType >
AnalysisType & getAnalysis (Function &F)
 
template<typename AnalysisType >
AnalysisType & getAnalysisID (AnalysisID PI) const
 
template<typename AnalysisType >
AnalysisType & getAnalysisID (AnalysisID PI, Function &F)
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::Pass
static const PassInfolookupPassInfo (const void *TI)
 
static const PassInfolookupPassInfo (StringRef Arg)
 
static PasscreatePass (AnalysisID ID)
 

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

Constructor & Destructor Documentation

llvm::FunctionPass::FunctionPass ( char &  pid)
inlineexplicit

Definition at line 295 of file Pass.h.

Member Function Documentation

void FunctionPass::assignPassManager ( PMStack PMS,
PassManagerType  PreferredType 
)
virtual
Pass * FunctionPass::createPrinterPass ( raw_ostream O,
const std::string &  Banner 
) const
virtual

createPrinterPass - Get a function printer pass.

Implements llvm::Pass.

Definition at line 131 of file Pass.cpp.

References llvm::createPrintFunctionPass().

PassManagerType FunctionPass::getPotentialPassManagerType ( ) const
virtual

Return what kind of Pass Manager can manage this pass.

Reimplemented from llvm::Pass.

Definition at line 136 of file Pass.cpp.

References llvm::PMT_FunctionPassManager.

virtual bool llvm::FunctionPass::runOnFunction ( Function F)
pure virtual

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