LLVM: llvm::PMDataManager Class Reference (original) (raw)
PMDataManager provides the common place to manage the analysis data used by pass managers. More...
#include "[llvm/IR/LegacyPassManagers.h](LegacyPassManagers%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| PMDataManager () | |
| virtual | ~PMDataManager () |
| virtual Pass * | getAsPass ()=0 |
| 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 | removeNotPreservedAnalysis (Pass *P) |
| Remove Analysis that is not preserved by the pass. | |
| void | removeDeadPasses (Pass *P, StringRef Msg, enum PassDebuggingString) |
| Remove dead passes used by P. | |
| void | freePass (Pass *P, StringRef Msg, enum PassDebuggingString) |
| Remove P. | |
| void | add (Pass *P, bool ProcessAnalysis=true) |
| Add pass P into the PassVector. | |
| virtual void | addLowerLevelRequiredPass (Pass *P, Pass *RequiredPass) |
| Add RequiredPass into list of lower level passes required by pass P. | |
| virtual std::tuple< Pass *, bool > | getOnTheFlyPass (Pass *P, AnalysisID PI, Function &F) |
| void | initializeAnalysisInfo () |
| Initialize available analysis information. | |
| bool | preserveHigherLevelAnalysis (Pass *P) |
| void | collectRequiredAndUsedAnalyses (SmallVectorImpl< Pass * > &UsedPasses, SmallVectorImpl< AnalysisID > &ReqPassNotAvailable, Pass *P) |
| Populate UsedPasses with analysis pass that are used or required by pass P and are available. | |
| void | initializeAnalysisImpl (Pass *P) |
| All Required analyses should be available to the pass as it runs! | |
| Pass * | findAnalysisPass (AnalysisID AID, bool Direction) |
| Find the pass that implements Analysis AID. | |
| 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 |
| void | dumpUsedSet (const Pass *P) const |
| unsigned | getNumContainedPasses () const |
| virtual PassManagerType | getPassManagerType () const |
| DenseMap< AnalysisID, Pass * > * | getAvailableAnalysis () |
| void | populateInheritedAnalysis (PMStack &PMS) |
| unsigned | initSizeRemarkInfo (Module &M, StringMap< std::pair< unsigned, unsigned > > &FunctionToInstrCount) |
| Set the initial size of the module if the user has specified that they want remarks for size. | |
| void | emitInstrCountChangedRemark (Pass *P, Module &M, int64_t Delta, unsigned CountBefore, StringMap< std::pair< unsigned, unsigned > > &FunctionToInstrCount, Function *F=nullptr) |
| Emit a remark signifying that the number of IR instructions in the module changed. |
| Protected Member Functions | |
|---|---|
| bool | isPassDebuggingExecutionsOrMore () const |
| isPassDebuggingExecutionsOrMore - Return true if -debug-pass=Executions or higher is specified. |
PMDataManager provides the common place to manage the analysis data used by pass managers.
Definition at line 296 of file LegacyPassManagers.h.
| llvm::PMDataManager::PMDataManager ( ) | inlineexplicit |
|---|
◆ ~PMDataManager()
| PMDataManager::~PMDataManager ( ) | virtual |
|---|
◆ add()
| void PMDataManager::add | ( | Pass * | P, |
|---|---|---|---|
| bool | ProcessAnalysis = true ) |
Add pass P into the PassVector.
Update AvailableAnalysis appropriately if ProcessAnalysis is true.
Definition at line 985 of file LegacyPassManager.cpp.
References addLowerLevelRequiredPass(), assert(), llvm::SmallVectorImpl< T >::clear(), collectRequiredAndUsedAnalyses(), llvm::PassInfo::createPass(), DM, llvm::SmallVectorTemplateCommon< T, typename >::empty(), getAsPass(), getDepth(), llvm_unreachable, P, PassVector, PMDataManager(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), recordAvailableAnalysis(), removeNotPreservedAnalysis(), and TPM.
Referenced by llvm::FunctionPass::assignPassManager(), llvm::LoopPass::assignPassManager(), llvm::ModulePass::assignPassManager(), llvm::RegionPass::assignPassManager(), and getAsPass().
◆ addLowerLevelRequiredPass()
| void PMDataManager::addLowerLevelRequiredPass ( Pass * P, Pass * RequiredPass ) | virtual |
|---|
◆ collectRequiredAndUsedAnalyses()
◆ dumpLastUses()
| void PMDataManager::dumpLastUses | ( | Pass * | P, |
|---|---|---|---|
| unsigned | Offset ) const |
◆ dumpPassArguments()
| void PMDataManager::dumpPassArguments | ( | ) | const |
|---|
◆ dumpPassInfo()
Definition at line 1141 of file LegacyPassManager.cpp.
References llvm::dbgs(), llvm::EXECUTION_MSG, llvm::FREEING_MSG, getDepth(), llvm::MODIFICATION_MSG, llvm::ON_CG_MSG, llvm::ON_FUNCTION_MSG, llvm::ON_LOOP_MSG, llvm::ON_MODULE_MSG, llvm::ON_REGION_MSG, P, PassDebugging, and S1.
Referenced by freePass(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::RGPassManager::runOnFunction().
◆ dumpPreservedSet()
| void PMDataManager::dumpPreservedSet | ( | const Pass * | P | ) | const |
|---|
◆ dumpRequiredSet()
| void PMDataManager::dumpRequiredSet | ( | const Pass * | P | ) | const |
|---|
◆ dumpUsedSet()
| void PMDataManager::dumpUsedSet | ( | const Pass * | P | ) | const |
|---|
◆ emitInstrCountChangedRemark()
◆ findAnalysisPass()
◆ freePass()
◆ getAsPass()
| virtual Pass * llvm::PMDataManager::getAsPass ( ) | pure virtual |
|---|
Implemented in llvm::FPPassManager, llvm::legacy::FunctionPassManagerImpl, llvm::legacy::PassManagerImpl, llvm::LPPassManager, and llvm::RGPassManager.
References add(), addLowerLevelRequiredPass(), F, freePass(), getOnTheFlyPass(), P, recordAvailableAnalysis(), removeDeadPasses(), removeNotPreservedAnalysis(), and verifyPreservedAnalysis().
Referenced by add().
◆ getAvailableAnalysis()
◆ getDepth()
| unsigned llvm::PMDataManager::getDepth ( ) const | inline |
|---|
◆ getNumContainedPasses()
| unsigned llvm::PMDataManager::getNumContainedPasses ( ) const | inline |
|---|
◆ getOnTheFlyPass()
◆ getPassManagerType()
| virtual PassManagerType llvm::PMDataManager::getPassManagerType ( ) const | inlinevirtual |
|---|
Reimplemented in llvm::FPPassManager, llvm::LPPassManager, and llvm::RGPassManager.
Definition at line 380 of file LegacyPassManagers.h.
References assert(), and llvm::PMT_Unknown.
Referenced by llvm::CallGraphSCCPass::assignPassManager(), llvm::FunctionPass::assignPassManager(), llvm::LoopPass::assignPassManager(), llvm::ModulePass::assignPassManager(), llvm::RegionPass::assignPassManager(), llvm::LoopPass::preparePassManager(), llvm::RegionPass::preparePassManager(), and llvm::PMStack::push().
◆ getTopLevelManager()
◆ initializeAnalysisImpl()
| void PMDataManager::initializeAnalysisImpl | ( | Pass * | P | ) |
|---|
◆ initializeAnalysisInfo()
| void llvm::PMDataManager::initializeAnalysisInfo ( ) | inline |
|---|
◆ initSizeRemarkInfo()
◆ isPassDebuggingExecutionsOrMore()
| bool PMDataManager::isPassDebuggingExecutionsOrMore ( ) const | protected |
|---|
◆ populateInheritedAnalysis()
| void llvm::PMDataManager::populateInheritedAnalysis ( PMStack & PMS) | inline |
|---|
◆ preserveHigherLevelAnalysis()
| bool PMDataManager::preserveHigherLevelAnalysis | ( | Pass * | P | ) |
|---|
◆ recordAvailableAnalysis()
| void PMDataManager::recordAvailableAnalysis | ( | Pass * | P | ) |
|---|
◆ removeDeadPasses()
◆ removeNotPreservedAnalysis()
| void PMDataManager::removeNotPreservedAnalysis | ( | Pass * | P | ) |
|---|
Remove Analysis that is not preserved by the pass.
Remove Analysis not preserved by Pass P.
Definition at line 900 of file LegacyPassManager.cpp.
References llvm::dbgs(), llvm::Pass::getPassName(), llvm::AnalysisUsage::getPreservedSet(), llvm::AnalysisUsage::getPreservesAll(), I, InheritedAnalysis, llvm::is_contained(), P, PassDebugging, and TPM.
Referenced by add(), getAsPass(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), and llvm::RGPassManager::runOnFunction().
◆ setDepth()
| void llvm::PMDataManager::setDepth ( unsigned newDepth) | inline |
|---|
◆ setTopLevelManager()
◆ verifyPreservedAnalysis()
| void PMDataManager::verifyPreservedAnalysis | ( | Pass * | P | ) |
|---|
◆ InheritedAnalysis
◆ PassVector
◆ TPM
Definition at line 419 of file LegacyPassManagers.h.
Referenced by add(), addLowerLevelRequiredPass(), collectRequiredAndUsedAnalyses(), dumpLastUses(), dumpPassArguments(), findAnalysisPass(), getTopLevelManager(), initializeAnalysisImpl(), preserveHigherLevelAnalysis(), removeDeadPasses(), removeNotPreservedAnalysis(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), llvm::RGPassManager::runOnFunction(), setTopLevelManager(), and verifyPreservedAnalysis().
The documentation for this class was generated from the following files:
- include/llvm/IR/LegacyPassManagers.h
- lib/IR/LegacyPassManager.cpp