LLVM API Documentation

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

#include <Pass.h>

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

Public Member Functions

PasscreatePrinterPass (raw_ostream &O, const std::string &Banner) const
 createPrinterPass - Get a module printer pass. More...
 
virtual bool runOnModule (Module &M)=0
 
virtual void assignPassManager (PMStack &PMS, PassManagerType T)
 
virtual PassManagerType getPotentialPassManagerType () const
 Return what kind of Pass Manager can manage this pass. More...
 
 ModulePass (char &pid)
 
virtual ~ModulePass ()
 
- 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

ModulePass class - This class is used to implement unstructured interprocedural optimizations and analyses. ModulePasses may do anything they want to the program.

Definition at line 235 of file Pass.h.

Constructor & Destructor Documentation

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

Definition at line 250 of file Pass.h.

ModulePass::~ModulePass ( )
virtual

Definition at line 34 of file Pass.cpp.

Member Function Documentation

void ModulePass::assignPassManager ( PMStack PMS,
PassManagerType  PreferredType 
)
virtual

Find appropriate Module Pass Manager in the PM Stack and add self into that manager.

Reimplemented from llvm::Pass.

Definition at line 1826 of file LegacyPassManager.cpp.

References llvm::PMDataManager::add(), llvm::PMStack::empty(), llvm::PMDataManager::getPassManagerType(), llvm::PMT_ModulePassManager, llvm::PMStack::pop(), and llvm::PMStack::top().

Referenced by llvm::FunctionPass::assignPassManager().

Pass * ModulePass::createPrinterPass ( raw_ostream O,
const std::string &  Banner 
) const
virtual

createPrinterPass - Get a module printer pass.

Implements llvm::Pass.

Definition at line 36 of file Pass.cpp.

References llvm::createPrintModulePass().

PassManagerType ModulePass::getPotentialPassManagerType ( ) const
virtual

Return what kind of Pass Manager can manage this pass.

Reimplemented from llvm::Pass.

Definition at line 41 of file Pass.cpp.

References llvm::PMT_ModulePassManager.

virtual bool llvm::ModulePass::runOnModule ( Module M)
pure virtual

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