LLVM API Documentation
PassManagerImpl manages MPPassManagers. More...
Public Member Functions | |
PassManagerImpl () | |
void | add (Pass *P) |
Pass * | createPrinterPass (raw_ostream &O, const std::string &Banner) const |
createPrinterPass - Get a module printer pass. More... | |
bool | run (Module &M) |
bool | doInitialization () |
bool | doFinalization () |
void | getAnalysisUsage (AnalysisUsage &Info) const |
Pass Manager itself does not invalidate any analysis info. More... | |
virtual PMDataManager * | getAsPMDataManager () |
virtual Pass * | getAsPass () |
virtual PassManagerType | getTopLevelPassManagerType () |
MPPassManager * | getContainedManager (unsigned N) |
![]() | |
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 | assignPassManager (PMStack &, PassManagerType) |
virtual void | preparePassManager (PMStack &) |
Check if available pass managers are suitable for this pass or not. More... | |
virtual PassManagerType | getPotentialPassManagerType () const |
Return what kind of Pass Manager can manage this pass. More... | |
void | setResolver (AnalysisResolver *AR) |
AnalysisResolver * | getResolver () const |
virtual void | releaseMemory () |
virtual void * | getAdjustedAnalysisPointer (AnalysisID ID) |
virtual ImmutablePass * | getAsImmutablePass () |
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) |
![]() | |
PMDataManager () | |
virtual | ~PMDataManager () |
void | recordAvailableAnalysis (Pass *P) |
Augment AvailableAnalysis by adding analysis made available by pass P. More... | |
void | verifyPreservedAnalysis (Pass *P) |
verifyPreservedAnalysis – Verify analysis presreved by pass P. More... | |
void | removeNotPreservedAnalysis (Pass *P) |
Remove Analysis that is not preserved by the pass. More... | |
void | removeDeadPasses (Pass *P, StringRef Msg, enum PassDebuggingString) |
Remove dead passes used by P. More... | |
void | freePass (Pass *P, StringRef Msg, enum PassDebuggingString) |
Remove P. More... | |
void | add (Pass *P, bool ProcessAnalysis=true) |
virtual void | addLowerLevelRequiredPass (Pass *P, Pass *RequiredPass) |
virtual Pass * | getOnTheFlyPass (Pass *P, AnalysisID PI, Function &F) |
void | initializeAnalysisInfo () |
Initialize available analysis information. More... | |
bool | preserveHigherLevelAnalysis (Pass *P) |
void | collectRequiredAnalysis (SmallVectorImpl< Pass * > &RequiredPasses, SmallVectorImpl< AnalysisID > &ReqPassNotAvailable, Pass *P) |
void | initializeAnalysisImpl (Pass *P) |
Pass * | findAnalysisPass (AnalysisID AID, bool Direction) |
PMTopLevelManager * | getTopLevelManager () |
void | setTopLevelManager (PMTopLevelManager *T) |
unsigned | getDepth () const |
void | setDepth (unsigned newDepth) |
void | dumpLastUses (Pass *P, unsigned Offset) const |
void | dumpPassArguments () const |
void | dumpPassInfo (Pass *P, enum PassDebuggingString S1, enum PassDebuggingString S2, StringRef Msg) |
void | dumpRequiredSet (const Pass *P) const |
void | dumpPreservedSet (const Pass *P) const |
unsigned | getNumContainedPasses () const |
virtual PassManagerType | getPassManagerType () const |
DenseMap< AnalysisID, Pass * > * | getAvailableAnalysis () |
void | populateInheritedAnalysis (PMStack &PMS) |
![]() | |
void | schedulePass (Pass *P) |
void | setLastUser (ArrayRef< Pass * > AnalysisPasses, Pass *P) |
Set pass P as the last user of the given analysis passes. More... | |
void | collectLastUses (SmallVectorImpl< Pass * > &LastUses, Pass *P) |
Collect passes whose last user is P. More... | |
Pass * | findAnalysisPass (AnalysisID AID) |
AnalysisUsage * | findAnalysisUsage (Pass *P) |
Find analysis usage information for the pass P. More... | |
virtual | ~PMTopLevelManager () |
Destructor. More... | |
void | addImmutablePass (ImmutablePass *P) |
Add immutable pass and initialize it. More... | |
SmallVectorImpl< ImmutablePass * > & | getImmutablePasses () |
void | addPassManager (PMDataManager *Manager) |
void | addIndirectPassManager (PMDataManager *Manager) |
void | dumpPasses () const |
void | dumpArguments () const |
Static Public Attributes | |
static char | ID = 0 |
Additional Inherited Members | |
![]() | |
static const PassInfo * | lookupPassInfo (const void *TI) |
static const PassInfo * | lookupPassInfo (StringRef Arg) |
static Pass * | createPass (AnalysisID ID) |
![]() | |
PMStack | activeStack |
![]() | |
bool | isPassDebuggingExecutionsOrMore () const |
![]() | |
PMTopLevelManager (PMDataManager *PMDM) | |
Initialize top level manager. Create first pass manager. More... | |
unsigned | getNumContainedManagers () const |
void | initializeAllAnalysisInfo () |
![]() | |
PMTopLevelManager * | TPM |
SmallVector< Pass *, 16 > | PassVector |
DenseMap< AnalysisID, Pass * > * | InheritedAnalysis [PMT_Last] |
![]() | |
SmallVector< PMDataManager *, 8 > | PassManagers |
Collection of pass managers. More... | |
PassManagerImpl manages MPPassManagers.
Definition at line 387 of file LegacyPassManager.cpp.
|
inlineexplicit |
Definition at line 394 of file LegacyPassManager.cpp.
|
inline |
add - Add a pass to the queue of passes to run. This passes ownership of the Pass to the PassManager. When the PassManager is destroyed, the pass will be destroyed as well, so there is no need to delete the pass. This implies that all passes MUST be allocated with 'new'.
Definition at line 402 of file LegacyPassManager.cpp.
Referenced by llvm::legacy::PassManager::add().
|
inlinevirtual |
createPrinterPass - Get a module printer pass.
Implements llvm::Pass.
Definition at line 407 of file LegacyPassManager.cpp.
References llvm::createPrintModulePass().
bool llvm::legacy::PassManagerImpl::doFinalization | ( | ) |
doFinalization - Run all of the finalizers for the module passes.
bool llvm::legacy::PassManagerImpl::doInitialization | ( | ) |
doInitialization - Run all of the initializers for the module passes.
|
inlinevirtual |
Pass Manager itself does not invalidate any analysis info.
Reimplemented from llvm::Pass.
Definition at line 427 of file LegacyPassManager.cpp.
References llvm::AnalysisUsage::setPreservesAll().
|
inlinevirtual |
Implements llvm::PMDataManager.
Definition at line 432 of file LegacyPassManager.cpp.
|
inlinevirtual |
Implements llvm::PMTopLevelManager.
Definition at line 431 of file LegacyPassManager.cpp.
|
inline |
|
inlinevirtual |
Implements llvm::PMTopLevelManager.
Definition at line 433 of file LegacyPassManager.cpp.
References llvm::PMT_ModulePassManager.
run - Execute all of the passes scheduled for execution. Keep track of whether any of the passes modifies the module, and if so, return true.
Definition at line 1696 of file LegacyPassManager.cpp.
References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::PMTopLevelManager::dumpArguments(), llvm::PMTopLevelManager::dumpPasses(), llvm::SmallVectorTemplateCommon< T >::end(), getContainedManager(), llvm::PMTopLevelManager::getImmutablePasses(), llvm::PMTopLevelManager::getNumContainedManagers(), I, and llvm::PMTopLevelManager::initializeAllAnalysisInfo().
Referenced by llvm::legacy::PassManager::run().
|
static |
Definition at line 393 of file LegacyPassManager.cpp.