LLVM: llvm::PMTopLevelManager Class Reference (original) (raw)
PMTopLevelManager manages LastUser info and collects common APIs used by top level pass managers. More...
#include "[llvm/IR/LegacyPassManagers.h](LegacyPassManagers%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| void | schedulePass (Pass *P) |
| Schedule pass P for execution. | |
| void | setLastUser (ArrayRef< Pass * > AnalysisPasses, Pass *P) |
| Set pass P as the last user of the given analysis passes. | |
| void | collectLastUses (SmallVectorImpl< Pass * > &LastUses, Pass *P) |
| Collect passes whose last user is P. | |
| Pass * | findAnalysisPass (AnalysisID AID) |
| Find the pass that implements Analysis AID. | |
| const PassInfo * | findAnalysisPassInfo (AnalysisID AID) const |
| Retrieve the PassInfo for an analysis. | |
| AnalysisUsage * | findAnalysisUsage (Pass *P) |
| Find analysis usage information for the pass P. | |
| virtual | ~PMTopLevelManager () |
| Destructor. | |
| void | addImmutablePass (ImmutablePass *P) |
| Add immutable pass and initialize it. | |
| SmallVectorImpl< ImmutablePass * > & | getImmutablePasses () |
| void | addPassManager (PMDataManager *Manager) |
| void | addIndirectPassManager (PMDataManager *Manager) |
| void | dumpPasses () const |
| void | dumpArguments () const |
PMTopLevelManager manages LastUser info and collects common APIs used by top level pass managers.
Definition at line 159 of file LegacyPassManagers.h.
| PMTopLevelManager::PMTopLevelManager ( PMDataManager * PMDM) | explicitprotected |
|---|
◆ ~PMTopLevelManager()
| PMTopLevelManager::~PMTopLevelManager ( ) | virtual |
|---|
◆ addImmutablePass()
◆ addIndirectPassManager()
| void llvm::PMTopLevelManager::addIndirectPassManager ( PMDataManager * Manager) | inline |
|---|
◆ addPassManager()
| void llvm::PMTopLevelManager::addPassManager ( PMDataManager * Manager) | inline |
|---|
◆ collectLastUses()
◆ dumpArguments()
| void PMTopLevelManager::dumpArguments | ( | ) | const |
|---|
◆ dumpPasses()
| void PMTopLevelManager::dumpPasses | ( | ) | const |
|---|
◆ findAnalysisPass()
◆ findAnalysisPassInfo()
◆ findAnalysisUsage()
◆ getImmutablePasses()
◆ getNumContainedManagers()
| unsigned llvm::PMTopLevelManager::getNumContainedManagers ( ) const | inlineprotected |
|---|
◆ initializeAllAnalysisInfo()
| void PMTopLevelManager::initializeAllAnalysisInfo ( ) | protected |
|---|
◆ schedulePass()
| void PMTopLevelManager::schedulePass | ( | Pass * | P | ) |
|---|
Schedule pass P for execution.
Make sure that passes required by P are run before P is run. Update analysis info maintained by the manager. Remove dead passes. This is a recursive function.
Definition at line 653 of file LegacyPassManager.cpp.
References activeStack, addImmutablePass(), assert(), llvm::Pass::assignPassManager(), llvm::PassInfo::createPass(), llvm::dbgs(), DM, findAnalysisPass(), findAnalysisPassInfo(), findAnalysisUsage(), llvm::PassInfo::getPassArgument(), llvm::Pass::getPassName(), llvm::Pass::getPotentialPassManagerType(), llvm::AnalysisUsage::getRequiredSet(), llvm::PassInfo::isAnalysis(), P, schedulePass(), llvm::shouldPrintAfterPass(), and llvm::shouldPrintBeforePass().
Referenced by llvm::legacy::FunctionPassManagerImpl::add(), llvm::legacy::PassManagerImpl::add(), llvm::CallGraphSCCPass::assignPassManager(), llvm::LoopPass::assignPassManager(), llvm::RegionPass::assignPassManager(), and schedulePass().
◆ setLastUser()
| void PMTopLevelManager::setLastUser | ( | ArrayRef< Pass * > | AnalysisPasses, |
|---|---|---|---|
| Pass * | P ) |
Set pass P as the last user of the given analysis passes.
Definition at line 555 of file LegacyPassManager.cpp.
References assert(), findAnalysisPass(), findAnalysisUsage(), llvm::PMDataManager::getDepth(), llvm::AnalysisResolver::getPMDataManager(), llvm::AnalysisUsage::getRequiredTransitiveSet(), llvm::Pass::getResolver(), P, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and setLastUser().
Referenced by setLastUser().
◆ activeStack
PMStack llvm::PMTopLevelManager::activeStack
◆ PassManagers
The documentation for this class was generated from the following files:
- include/llvm/IR/LegacyPassManagers.h
- lib/IR/LegacyPassManager.cpp