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: