LLVM API Documentation
#include <Pass.h>
Public Member Functions | |
FunctionPass (char &pid) | |
Pass * | createPrinterPass (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... | |
![]() | |
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) |
AnalysisResolver * | getResolver () const |
virtual void | getAnalysisUsage (AnalysisUsage &) const |
virtual void | releaseMemory () |
virtual void * | getAdjustedAnalysisPointer (AnalysisID ID) |
virtual ImmutablePass * | getAsImmutablePass () |
virtual PMDataManager * | getAsPMDataManager () |
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 const PassInfo * | lookupPassInfo (const void *TI) |
static const PassInfo * | lookupPassInfo (StringRef Arg) |
static Pass * | createPass (AnalysisID ID) |
FunctionPass class - This class is used to implement most global optimizations. Optimizations should subclass this class if they meet the following constraints:
|
inlineexplicit |
|
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 1844 of file LegacyPassManager.cpp.
References llvm::PMDataManager::add(), llvm::PMTopLevelManager::addIndirectPassManager(), llvm::ModulePass::assignPassManager(), llvm::PMStack::empty(), llvm::PMDataManager::getPassManagerType(), llvm::PMT_FunctionPassManager, llvm::PMStack::pop(), llvm::PMDataManager::populateInheritedAnalysis(), llvm::PMStack::push(), and llvm::PMStack::top().
|
virtual |
createPrinterPass - Get a function printer pass.
Implements llvm::Pass.
Definition at line 131 of file Pass.cpp.
References llvm::createPrintFunctionPass().
|
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.
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
Implemented in llvm::DependenceAnalysis, llvm::ScalarEvolution, llvm::DominatorTree, llvm::RegionInfo, llvm::LoopInfo, llvm::MemoryDependenceAnalysis, llvm::DominanceFrontier, llvm::StackProtector, llvm::RGPassManager, llvm::InstCombiner, llvm::LPPassManager, llvm::LazyValueInfo, llvm::IntervalPartition, llvm::DOTGraphTraitsPrinter< Analysis, Simple >, llvm::LibCallAliasAnalysis, llvm::BranchProbabilityInfo, llvm::UnifyFunctionExitNodes, llvm::BlockFrequencyInfo, llvm::NVPTXAllocaHoisting, llvm::PostDominatorTree, llvm::NVPTXLowerAggrCopies, llvm::NVPTXSplitBBatBar, and llvm::DOTGraphTraitsViewer< Analysis, Simple >.
Referenced by llvm::FPPassManager::runOnFunction().