LLVM API Documentation
#include <PassManagers.h>


Public Member Functions | |
| PMDataManager (int Depth) | |
| virtual | ~PMDataManager () |
| void | recordAvailableAnalysis (Pass *P) |
| Augment AvailableAnalysis by adding analysis made available by pass P. | |
| void | verifyPreservedAnalysis (Pass *P) |
| verifyPreservedAnalysis -- Verify analysis presreved by pass P. | |
| void | verifyDomInfo (Pass &P, Function &F) |
| verifyDomInfo -- Verify dominator information if it is available. | |
| void | removeNotPreservedAnalysis (Pass *P) |
| Remove Analysis that is not preserved by the pass. | |
| void | removeDeadPasses (Pass *P, const char *Msg, enum PassDebuggingString) |
| Remove dead passes. | |
| void | add (Pass *P, bool ProcessAnalysis=true) |
| virtual void | addLowerLevelRequiredPass (Pass *P, Pass *RequiredPass) |
| virtual Pass * | getOnTheFlyPass (Pass *P, const PassInfo *PI, Function &F) |
| void | initializeAnalysisInfo () |
| Initialize available analysis information. | |
| bool | preserveHigherLevelAnalysis (Pass *P) |
| void | collectRequiredAnalysis (SmallVector< Pass *, 8 > &RequiredPasses, SmallVector< AnalysisID, 8 > &ReqPassNotAvailable, Pass *P) |
| void | initializeAnalysisImpl (Pass *P) |
| Pass * | findAnalysisPass (AnalysisID AID, bool Direction) |
| PMTopLevelManager * | getTopLevelManager () |
| void | setTopLevelManager (PMTopLevelManager *T) |
| unsigned | getDepth () const |
| void | dumpLastUses (Pass *P, unsigned Offset) const |
| void | dumpPassArguments () const |
| void | dumpPassInfo (Pass *P, enum PassDebuggingString S1, enum PassDebuggingString S2, const char *Msg) |
| void | dumpRequiredSet (const Pass *P) const |
| void | dumpPreservedSet (const Pass *P) const |
| virtual unsigned | getNumContainedPasses () const |
| virtual PassManagerType | getPassManagerType () const |
| std::map< AnalysisID, Pass * > * | getAvailableAnalysis () |
| void | populateInheritedAnalysis (PMStack &PMS) |
Protected Attributes | |
| PMTopLevelManager * | TPM |
| SmallVector< Pass *, 16 > | PassVector |
| std::map< AnalysisID, Pass * > * | InheritedAnalysis [PMT_Last] |
Definition at line 242 of file PassManagers.h.
| llvm::PMDataManager::PMDataManager | ( | int | Depth | ) | [inline, explicit] |
| PMDataManager::~PMDataManager | ( | ) | [virtual] |
| void PMDataManager::recordAvailableAnalysis | ( | Pass * | P | ) |
Augment AvailableAnalysis by adding analysis made available by pass P.
Augement AvailableAnalysis by adding analysis made available by pass P.
Definition at line 622 of file PassManager.cpp.
References llvm::Pass::getPassInfo(), II, and PI.
Referenced by add(), llvm::PassManagerImpl::addTopLevelPass(), llvm::FunctionPassManagerImpl::addTopLevelPass(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().
| void PMDataManager::verifyPreservedAnalysis | ( | Pass * | P | ) |
verifyPreservedAnalysis -- Verify analysis presreved by pass P.
verifyPreservedAnalysis -- Verify analysis preserved by pass P.
Definition at line 659 of file PassManager.cpp.
References E, findAnalysisPass(), llvm::PMTopLevelManager::findAnalysisUsage(), llvm::AnalysisUsage::getPreservedSet(), and TPM.
Referenced by llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().
verifyDomInfo -- Verify dominator information if it is available.
verifyDomInfo - Verify dominator information if it is available.
Definition at line 677 of file PassManager.cpp.
References llvm::DominanceFrontier::calculate(), llvm::cerr(), llvm::DominanceFrontierBase::compare(), llvm::DominatorTree::compare(), DF, DT, llvm::DominanceFrontierBase::dump(), llvm::Pass::dump(), llvm::Pass::getAnalysisToUpdate(), llvm::DominatorTree::getBase(), llvm::Value::getNameStart(), llvm::DominatorTree::getNode(), llvm::Pass::getPassName(), llvm::Pass::getResolver(), llvm::DominatorTree::getRoots(), and llvm::VerifyDomInfo.
Referenced by llvm::FPPassManager::runOnFunction(), and llvm::LPPassManager::runOnFunction().
| void PMDataManager::removeNotPreservedAnalysis | ( | Pass * | P | ) |
Remove Analysis that is not preserved by the pass.
Remove Analysis not preserved by Pass P.
Definition at line 717 of file PassManager.cpp.
References llvm::cerr(), llvm::Details, E, llvm::PMTopLevelManager::findAnalysisUsage(), llvm::Pass::getPassName(), llvm::AnalysisUsage::getPreservedSet(), llvm::AnalysisUsage::getPreservesAll(), Index, InheritedAnalysis, llvm::PassDebugging, llvm::PMT_Last, and TPM.
Referenced by add(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().
| void PMDataManager::removeDeadPasses | ( | Pass * | P, | |
| const char * | Msg, | |||
| enum PassDebuggingString | DBG_STR | |||
| ) |
Remove dead passes.
Remove analysis passes that are not used any longer.
Definition at line 760 of file PassManager.cpp.
References llvm::SmallVectorImpl< T >::begin(), llvm::cerr(), llvm::PMTopLevelManager::collectLastUses(), llvm::Details, dumpPassInfo(), E, llvm::SmallVectorImpl< T >::empty(), llvm::SmallVectorImpl< T >::end(), llvm::FREEING_MSG, llvm::Pass::getPassName(), II, llvm::PassDebugging, PI, TheTimeInfo, and TPM.
Referenced by llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().
| void PMDataManager::add | ( | Pass * | P, | |
| bool | ProcessAnalysis = true | |||
| ) |
Add pass P into the PassVector. Update AvailableAnalysis appropriately if ProcessAnalysis is true.
Add pass P into the PassVector. Update AvailableAnalysis appropriately if ProcessAnalysis is true.
Definition at line 807 of file PassManager.cpp.
References addLowerLevelRequiredPass(), llvm::SmallVectorImpl< T >::begin(), llvm::SmallVectorImpl< T >::clear(), collectRequiredAnalysis(), E, llvm::SmallVectorImpl< T >::empty(), llvm::SmallVectorImpl< T >::end(), getDepth(), llvm::AnalysisResolver::getPMDataManager(), llvm::Pass::getResolver(), PassVector, llvm::SmallVectorImpl< T >::push_back(), recordAvailableAnalysis(), removeNotPreservedAnalysis(), llvm::PMTopLevelManager::setLastUser(), llvm::Pass::setResolver(), and TPM.
Referenced by llvm::FunctionPass::assignPassManager(), llvm::ModulePass::assignPassManager(), and llvm::LoopPass::assignPassManager().
Add RequiredPass into list of lower level passes required by pass P. RequiredPass is run on the fly by Pass Manager when P requests it through getAnalysis interface.
Add RequiredPass into list of lower level passes required by pass P. RequiredPass is run on the fly by Pass Manager when P requests it through getAnalysis interface. This should be handled by specific pass manager.
Reimplemented in llvm::MPPassManager.
Definition at line 1058 of file PassManager.cpp.
References llvm::cerr(), llvm::PMTopLevelManager::dumpArguments(), llvm::PMTopLevelManager::dumpPasses(), llvm::Pass::getPassName(), and TPM.
Referenced by add().
| virtual Pass* llvm::PMDataManager::getOnTheFlyPass | ( | Pass * | P, | |
| const PassInfo * | PI, | |||
| Function & | F | |||
| ) | [inline, virtual] |
Reimplemented in llvm::MPPassManager.
Definition at line 275 of file PassManagers.h.
Referenced by llvm::AnalysisResolver::findImplPass().
| void llvm::PMDataManager::initializeAnalysisInfo | ( | ) | [inline] |
Initialize available analysis information.
Definition at line 281 of file PassManagers.h.
References InheritedAnalysis, and llvm::PMT_Last.
Referenced by llvm::PMTopLevelManager::initializeAllAnalysisInfo(), PMDataManager(), and llvm::PMStack::pop().
| bool PMDataManager::preserveHigherLevelAnalysis | ( | Pass * | P | ) |
Definition at line 637 of file PassManager.cpp.
References E, llvm::PMTopLevelManager::findAnalysisUsage(), llvm::Pass::getPassInfo(), llvm::AnalysisUsage::getPreservedSet(), llvm::AnalysisUsage::getPreservesAll(), P1, and TPM.
Referenced by llvm::LoopPass::preparePassManager().
| void PMDataManager::collectRequiredAnalysis | ( | SmallVector< Pass *, 8 > & | RP, | |
| SmallVector< AnalysisID, 8 > & | RP_NotAvail, | |||
| Pass * | P | |||
| ) |
Populate RequiredPasses with analysis pass that are required by pass P and are available. Populate ReqPassNotAvailable with analysis pass that are required by pass P but are not available.
Populate RP with analysis pass that are required by pass P and are available. Populate RP_NotAvail with analysis pass that are required by pass P but are not available.
Definition at line 885 of file PassManager.cpp.
References E, findAnalysisPass(), llvm::PMTopLevelManager::findAnalysisUsage(), llvm::AnalysisUsage::getRequiredSet(), llvm::AnalysisUsage::getRequiredTransitiveSet(), llvm::SmallVectorImpl< T >::push_back(), and TPM.
Referenced by add().
| void PMDataManager::initializeAnalysisImpl | ( | Pass * | P | ) |
All Required analyses should be available to the pass as it runs! Here we fill in the AnalysisImpls member of the pass so that it can successfully use the getAnalysis() method to retrieve the implementations it needs.
Definition at line 916 of file PassManager.cpp.
References llvm::AnalysisResolver::addAnalysisImplsPair(), E, findAnalysisPass(), llvm::PMTopLevelManager::findAnalysisUsage(), llvm::AnalysisUsage::getRequiredSet(), llvm::Pass::getResolver(), and TPM.
Referenced by llvm::PassManagerImpl::addTopLevelPass(), llvm::FunctionPassManagerImpl::addTopLevelPass(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().
| Pass * PMDataManager::findAnalysisPass | ( | AnalysisID | AID, | |
| bool | SearchParent | |||
| ) |
Find the pass that implements Analysis AID. If desired pass is not found then return NULL.
Find the pass that implements Analysis AID. If desired pass is not found then return NULL.
Definition at line 935 of file PassManager.cpp.
References llvm::PMTopLevelManager::findAnalysisPass(), if(), and TPM.
Referenced by collectRequiredAnalysis(), llvm::PMTopLevelManager::findAnalysisPass(), llvm::AnalysisResolver::getAnalysisToUpdate(), initializeAnalysisImpl(), and verifyPreservedAnalysis().
| PMTopLevelManager* llvm::PMDataManager::getTopLevelManager | ( | ) | [inline] |
Definition at line 310 of file PassManagers.h.
References TPM.
Referenced by llvm::BasicBlockPass::assignPassManager(), llvm::CallGraphSCCPass::assignPassManager(), and llvm::PMStack::push().
| void llvm::PMDataManager::setTopLevelManager | ( | PMTopLevelManager * | T | ) | [inline] |
Definition at line 311 of file PassManagers.h.
References TPM.
Referenced by llvm::MPPassManager::addLowerLevelRequiredPass(), llvm::FunctionPassManager::FunctionPassManager(), llvm::PassManager::PassManager(), llvm::PMTopLevelManager::PMTopLevelManager(), and llvm::PMStack::push().
| unsigned llvm::PMDataManager::getDepth | ( | ) | const [inline] |
Definition at line 951 of file PassManager.cpp.
References llvm::SmallVectorImpl< T >::begin(), llvm::cerr(), llvm::PMTopLevelManager::collectLastUses(), E, llvm::SmallVectorImpl< T >::end(), and TPM.
Referenced by llvm::FPPassManager::dumpPassStructure(), llvm::MPPassManager::dumpPassStructure(), and llvm::LPPassManager::dumpPassStructure().
| void PMDataManager::dumpPassArguments | ( | ) | const |
Definition at line 968 of file PassManager.cpp.
References llvm::cerr(), E, PassVector, and PI.
Referenced by llvm::PMTopLevelManager::dumpArguments().
| void PMDataManager::dumpPassInfo | ( | Pass * | P, | |
| enum PassDebuggingString | S1, | |||
| enum PassDebuggingString | S2, | |||
| const char * | Msg | |||
| ) |
Definition at line 980 of file PassManager.cpp.
References llvm::cerr(), llvm::EXECUTION_MSG, llvm::Executions, llvm::FREEING_MSG, getDepth(), llvm::Pass::getPassName(), llvm::MODIFICATION_MSG, llvm::ON_BASICBLOCK_MSG, llvm::ON_CG_MSG, llvm::ON_FUNCTION_MSG, llvm::ON_LOOP_MSG, llvm::ON_MODULE_MSG, and llvm::PassDebugging.
Referenced by removeDeadPasses(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().
| void PMDataManager::dumpRequiredSet | ( | const Pass * | P | ) | const |
Definition at line 1020 of file PassManager.cpp.
References llvm::Details, llvm::Pass::getAnalysisUsage(), llvm::AnalysisUsage::getRequiredSet(), and llvm::PassDebugging.
Referenced by llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().
| void PMDataManager::dumpPreservedSet | ( | const Pass * | P | ) | const |
Definition at line 1030 of file PassManager.cpp.
References llvm::Details, llvm::Pass::getAnalysisUsage(), llvm::AnalysisUsage::getPreservedSet(), and llvm::PassDebugging.
Referenced by llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().
| virtual unsigned llvm::PMDataManager::getNumContainedPasses | ( | ) | const [inline, virtual] |
Definition at line 323 of file PassManagers.h.
References PassVector.
Referenced by llvm::LPPassManager::cloneBasicBlockSimpleAnalysis(), llvm::LPPassManager::deleteSimpleAnalysisValue(), llvm::FPPassManager::doFinalization(), llvm::FPPassManager::doInitialization(), llvm::FPPassManager::dumpPassStructure(), llvm::MPPassManager::dumpPassStructure(), llvm::LPPassManager::dumpPassStructure(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::MPPassManager::runOnModule().
| virtual PassManagerType llvm::PMDataManager::getPassManagerType | ( | ) | const [inline, virtual] |
Reimplemented in llvm::LPPassManager, llvm::FPPassManager, and llvm::MPPassManager.
Definition at line 327 of file PassManagers.h.
References llvm::PMT_Unknown.
Referenced by llvm::FunctionPass::assignPassManager(), llvm::ModulePass::assignPassManager(), llvm::LoopPass::assignPassManager(), llvm::CallGraphSCCPass::assignPassManager(), and llvm::LoopPass::preparePassManager().
| std::map<AnalysisID, Pass*>* llvm::PMDataManager::getAvailableAnalysis | ( | ) | [inline] |
Definition at line 332 of file PassManagers.h.
| void llvm::PMDataManager::populateInheritedAnalysis | ( | PMStack & | PMS | ) | [inline] |
Definition at line 337 of file PassManagers.h.
References llvm::PMStack::begin(), E, llvm::PMStack::end(), I, Index, and InheritedAnalysis.
Referenced by llvm::FunctionPass::assignPassManager(), llvm::LoopPass::assignPassManager(), llvm::FPPassManager::runOnFunction(), and llvm::LPPassManager::runOnFunction().
PMTopLevelManager* llvm::PMDataManager::TPM [protected] |
Definition at line 347 of file PassManagers.h.
Referenced by add(), addLowerLevelRequiredPass(), collectRequiredAnalysis(), dumpLastUses(), findAnalysisPass(), getTopLevelManager(), initializeAnalysisImpl(), preserveHigherLevelAnalysis(), removeDeadPasses(), removeNotPreservedAnalysis(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), setTopLevelManager(), and verifyPreservedAnalysis().
SmallVector<Pass *, 16> llvm::PMDataManager::PassVector [protected] |
Definition at line 350 of file PassManagers.h.
Referenced by add(), dumpPassArguments(), llvm::FPPassManager::getContainedPass(), llvm::MPPassManager::getContainedPass(), llvm::LPPassManager::getContainedPass(), getNumContainedPasses(), and ~PMDataManager().
std::map<AnalysisID, Pass *>* llvm::PMDataManager::InheritedAnalysis[PMT_Last] [protected] |
Definition at line 355 of file PassManagers.h.
Referenced by initializeAnalysisInfo(), populateInheritedAnalysis(), and removeNotPreservedAnalysis().
This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.