LLVM API Documentation
#include <PassManagers.h>
Public Member Functions | |
| virtual unsigned | getNumContainedManagers () const |
| void | schedulePass (Pass *P) |
| virtual void | addTopLevelPass (Pass *P)=0 |
| void | setLastUser (SmallVector< Pass *, 12 > &AnalysisPasses, Pass *P) |
| Set pass P as the last user of the given analysis passes. | |
| void | collectLastUses (SmallVector< Pass *, 12 > &LastUses, Pass *P) |
| Collect passes whose last user is P. | |
| Pass * | findAnalysisPass (AnalysisID AID) |
| AnalysisUsage * | findAnalysisUsage (Pass *P) |
| Find analysis usage information for the pass P. | |
| PMTopLevelManager (enum TopLevelManagerType t) | |
| Initialize top level manager. Create first pass manager. | |
| virtual | ~PMTopLevelManager () |
| Destructor. | |
| void | addImmutablePass (ImmutablePass *P) |
| Add immutable pass and initialize it. | |
| SmallVector< ImmutablePass *, 8 > & | getImmutablePasses () |
| void | addPassManager (PMDataManager *Manager) |
| void | addIndirectPassManager (PMDataManager *Manager) |
| void | dumpPasses () const |
| void | dumpArguments () const |
| void | initializeAllAnalysisInfo () |
Public Attributes | |
| PMStack | activeStack |
Protected Attributes | |
| SmallVector< PMDataManager *, 8 > | PassManagers |
| Collection of pass managers. | |
Definition at line 147 of file PassManagers.h.
| PMTopLevelManager::PMTopLevelManager | ( | enum TopLevelManagerType | t | ) | [explicit] |
Initialize top level manager. Create first pass manager.
Definition at line 377 of file PassManager.cpp.
References activeStack, addPassManager(), llvm::PMStack::push(), llvm::PMDataManager::setTopLevelManager(), llvm::TLM_Function, and llvm::TLM_Pass.
| PMTopLevelManager::~PMTopLevelManager | ( | ) | [virtual] |
| virtual unsigned llvm::PMTopLevelManager::getNumContainedManagers | ( | ) | const [inline, virtual] |
Definition at line 150 of file PassManagers.h.
References PassManagers.
Referenced by llvm::FunctionPassManagerImpl::doFinalization(), llvm::FunctionPassManagerImpl::doInitialization(), llvm::PassManagerImpl::run(), and llvm::FunctionPassManagerImpl::run().
| 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.
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 449 of file PassManager.cpp.
References activeStack, addTopLevelPass(), E, findAnalysisPass(), findAnalysisUsage(), llvm::Pass::getPassInfo(), llvm::Pass::getPotentialPassManagerType(), llvm::AnalysisUsage::getRequiredSet(), llvm::PassInfo::isAnalysis(), and llvm::Pass::preparePassManager().
Referenced by llvm::PassManagerImpl::add(), llvm::FunctionPassManagerImpl::add(), and llvm::LoopPass::assignPassManager().
| virtual void llvm::PMTopLevelManager::addTopLevelPass | ( | Pass * | P | ) | [pure virtual] |
This is implemented by top level pass manager and used by schedulePass() to add analysis info passes that are not available.
Implemented in llvm::FunctionPassManagerImpl, and llvm::PassManagerImpl.
Referenced by schedulePass().
| void PMTopLevelManager::setLastUser | ( | SmallVector< Pass *, 12 > & | AnalysisPasses, | |
| Pass * | P | |||
| ) |
Set pass P as the last user of the given analysis passes.
Definition at line 394 of file PassManager.cpp.
References llvm::SmallVectorImpl< T >::begin(), E, and llvm::SmallVectorImpl< T >::end().
Referenced by llvm::PMDataManager::add(), and llvm::MPPassManager::addLowerLevelRequiredPass().
| void PMTopLevelManager::collectLastUses | ( | SmallVector< Pass *, 12 > & | LastUses, | |
| Pass * | P | |||
| ) |
Collect passes whose last user is P.
Definition at line 418 of file PassManager.cpp.
References llvm::SmallPtrSet< PtrType, SmallSize >::begin(), E, llvm::SmallPtrSet< PtrType, SmallSize >::end(), and llvm::SmallVectorImpl< T >::push_back().
Referenced by llvm::PMDataManager::dumpLastUses(), and llvm::PMDataManager::removeDeadPasses().
| Pass * PMTopLevelManager::findAnalysisPass | ( | AnalysisID | AID | ) |
Find the pass that implements Analysis AID. Search immutable passes and all pass managers. If desired pass is not found then return NULL.
Find the pass that implements Analysis AID. Search immutable passes and all pass managers. If desired pass is not found then return NULL.
Definition at line 506 of file PassManager.cpp.
References E, llvm::PMDataManager::findAnalysisPass(), llvm::PassInfo::getInterfacesImplemented(), PassManagers, and PI.
Referenced by llvm::PMDataManager::findAnalysisPass(), and schedulePass().
| AnalysisUsage * PMTopLevelManager::findAnalysisUsage | ( | Pass * | P | ) |
Find analysis usage information for the pass P.
Definition at line 433 of file PassManager.cpp.
References llvm::Pass::getAnalysisUsage().
Referenced by llvm::PMDataManager::collectRequiredAnalysis(), llvm::PMDataManager::initializeAnalysisImpl(), llvm::PMDataManager::preserveHigherLevelAnalysis(), llvm::PMDataManager::removeNotPreservedAnalysis(), schedulePass(), and llvm::PMDataManager::verifyPreservedAnalysis().
| void llvm::PMTopLevelManager::addImmutablePass | ( | ImmutablePass * | P | ) | [inline] |
Add immutable pass and initialize it.
Definition at line 181 of file PassManagers.h.
References llvm::ImmutablePass::initializePass().
Referenced by llvm::PassManagerImpl::addTopLevelPass(), and llvm::FunctionPassManagerImpl::addTopLevelPass().
| SmallVector<ImmutablePass *, 8>& llvm::PMTopLevelManager::getImmutablePasses | ( | ) | [inline] |
Definition at line 186 of file PassManagers.h.
| void llvm::PMTopLevelManager::addPassManager | ( | PMDataManager * | Manager | ) | [inline] |
Definition at line 190 of file PassManagers.h.
References PassManagers.
Referenced by PMTopLevelManager().
| void llvm::PMTopLevelManager::addIndirectPassManager | ( | PMDataManager * | Manager | ) | [inline] |
Definition at line 196 of file PassManagers.h.
Referenced by llvm::BasicBlockPass::assignPassManager(), llvm::FunctionPass::assignPassManager(), llvm::LoopPass::assignPassManager(), llvm::CallGraphSCCPass::assignPassManager(), and llvm::PMStack::push().
| void PMTopLevelManager::dumpPasses | ( | ) | const |
Definition at line 540 of file PassManager.cpp.
References E, llvm::PassDebugging, PassManagers, and llvm::Structure.
Referenced by llvm::PMDataManager::addLowerLevelRequiredPass(), llvm::PassManagerImpl::run(), and llvm::FunctionPassManagerImpl::run().
| void PMTopLevelManager::dumpArguments | ( | ) | const |
Definition at line 559 of file PassManager.cpp.
References llvm::Arguments, llvm::cerr(), llvm::PMDataManager::dumpPassArguments(), E, llvm::PassDebugging, and PassManagers.
Referenced by llvm::PMDataManager::addLowerLevelRequiredPass(), llvm::PassManagerImpl::run(), and llvm::FunctionPassManagerImpl::run().
| void PMTopLevelManager::initializeAllAnalysisInfo | ( | ) |
Definition at line 573 of file PassManager.cpp.
References E, llvm::PMDataManager::initializeAnalysisInfo(), llvm::SmallPtrSet< PtrType, SmallSize >::insert(), L, and PassManagers.
Referenced by llvm::PassManagerImpl::run(), and llvm::FunctionPassManagerImpl::run().
Definition at line 207 of file PassManagers.h.
Referenced by llvm::PassManagerImpl::addTopLevelPass(), llvm::FunctionPassManagerImpl::addTopLevelPass(), PMTopLevelManager(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and schedulePass().
SmallVector<PMDataManager *, 8> llvm::PMTopLevelManager::PassManagers [protected] |
Collection of pass managers.
Definition at line 212 of file PassManagers.h.
Referenced by addPassManager(), dumpArguments(), dumpPasses(), findAnalysisPass(), llvm::PassManagerImpl::getContainedManager(), llvm::FunctionPassManagerImpl::getContainedManager(), getNumContainedManagers(), initializeAllAnalysisInfo(), and ~PMTopLevelManager().