|
LLVM 22.0.0git
|
The pass manager to schedule RegionPasses. More...
#include "llvm/Analysis/RegionPass.h"
Public Member Functions | |
| RGPassManager () | |
| bool | runOnFunction (Function &F) override |
| Execute all of the passes scheduled for execution. | |
| void | getAnalysisUsage (AnalysisUsage &Info) const override |
| Pass Manager itself does not invalidate any analysis info. | |
| StringRef | getPassName () const override |
| getPassName - Return a nice clean name for a pass. | |
| PMDataManager * | getAsPMDataManager () override |
| Pass * | getAsPass () override |
| void | dumpPassStructure (unsigned Offset) override |
| Print passes managed by this manager. | |
| Pass * | getContainedPass (unsigned N) |
| Get passes contained by this manager. | |
| PassManagerType | getPassManagerType () const override |
| Public Member Functions inherited from llvm::FunctionPass | |
| FunctionPass (char &pid) | |
| Pass * | createPrinterPass (raw_ostream &OS, const std::string &Banner) const override |
| createPrinterPass - Get a function printer pass. | |
| void | assignPassManager (PMStack &PMS, PassManagerType T) override |
| Find appropriate Function Pass Manager or Call Graph Pass Manager in the PM Stack and add self into that manager. | |
| PassManagerType | getPotentialPassManagerType () const override |
| Return what kind of Pass Manager can manage this pass. | |
| Public Member Functions inherited from llvm::Pass | |
| Pass (PassKind K, char &pid) | |
| Pass (const Pass &)=delete | |
| Pass & | operator= (const Pass &)=delete |
| virtual | ~Pass () |
| PassKind | getPassKind () const |
| StringRef | getPassArgument () const |
| Return a nice clean name for a pass corresponding to that used to enable the pass in opt. | |
| AnalysisID | getPassID () const |
| getPassID - Return the PassID number that corresponds to this pass. | |
| virtual bool | doInitialization (Module &) |
| doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run. | |
| virtual bool | doFinalization (Module &) |
| doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes have run. | |
| virtual void | print (raw_ostream &OS, const Module *M) const |
| print - Print out the internal state of the pass. | |
| void | dump () const |
| virtual void | preparePassManager (PMStack &) |
| Check if available pass managers are suitable for this pass or not. | |
| void | setResolver (AnalysisResolver *AR) |
| AnalysisResolver * | getResolver () const |
| virtual void | releaseMemory () |
| releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. | |
| virtual ImmutablePass * | getAsImmutablePass () |
| virtual void | verifyAnalysis () const |
| verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis information. | |
| template<typename AnalysisType> | |
| AnalysisType * | getAnalysisIfAvailable () const |
| getAnalysisIfAvailable<AnalysisType>() - Subclasses use this function to get analysis information that might be around, for example to update it. | |
| bool | mustPreserveAnalysisID (char &AID) const |
| mustPreserveAnalysisID - This method serves the same function as getAnalysisIfAvailable, but works if you just have an AnalysisID. | |
| template<typename AnalysisType> | |
| AnalysisType & | getAnalysis () const |
| getAnalysis<AnalysisType>() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function. | |
| template<typename AnalysisType> | |
| AnalysisType & | getAnalysis (Function &F, bool *Changed=nullptr) |
| getAnalysis<AnalysisType>() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function. | |
| template<typename AnalysisType> | |
| AnalysisType & | getAnalysisID (AnalysisID PI) const |
| template<typename AnalysisType> | |
| AnalysisType & | getAnalysisID (AnalysisID PI, Function &F, bool *Changed=nullptr) |
| Public Member Functions inherited from llvm::PMDataManager | |
| PMDataManager () | |
| 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 | 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 |
| 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. | |
Static Public Attributes | |
| static char | ID = 0 |
Additional Inherited Members | |
| Static Public Member Functions inherited from llvm::Pass | |
| static const PassInfo * | lookupPassInfo (const void *TI) |
| static const PassInfo * | lookupPassInfo (StringRef Arg) |
| static Pass * | createPass (AnalysisID ID) |
| Protected Member Functions inherited from llvm::FunctionPass | |
| bool | skipFunction (const Function &F) const |
| Optional passes call this function to check whether the pass should be skipped. | |
| Protected Member Functions inherited from llvm::PMDataManager | |
| bool | isPassDebuggingExecutionsOrMore () const |
| isPassDebuggingExecutionsOrMore - Return true if -debug-pass=Executions or higher is specified. | |
| Protected Attributes inherited from llvm::PMDataManager | |
| PMTopLevelManager * | TPM = nullptr |
| SmallVector< Pass *, 16 > | PassVector |
| DenseMap< AnalysisID, Pass * > * | InheritedAnalysis [PMT_Last] |
The pass manager to schedule RegionPasses.
Definition at line 88 of file RegionPass.h.
|
explicit |
Definition at line 35 of file RegionPass.cpp.
References llvm::FunctionPass::FunctionPass(), and ID.
|
overridevirtual |
Print passes managed by this manager.
Reimplemented from llvm::Pass.
Definition at line 165 of file RegionPass.cpp.
References llvm::PMDataManager::dumpLastUses(), llvm::errs(), getContainedPass(), llvm::PMDataManager::getNumContainedPasses(), llvm::raw_ostream::indent(), llvm::Offset, and P.
|
overridevirtual |
Pass Manager itself does not invalidate any analysis info.
RGPassManager needs RegionInfo.
Reimplemented from llvm::Pass.
Definition at line 48 of file RegionPass.cpp.
|
inlineoverridevirtual |
Implements llvm::PMDataManager.
Definition at line 109 of file RegionPass.h.
|
inlineoverridevirtual |
Reimplemented from llvm::Pass.
Definition at line 108 of file RegionPass.h.
References llvm::PMDataManager::PMDataManager().
Get passes contained by this manager.
Definition at line 115 of file RegionPass.h.
References assert(), FP, N, and llvm::PMDataManager::PassVector.
Referenced by dumpPassStructure(), and runOnFunction().
|
inlineoverridevirtual |
Reimplemented from llvm::PMDataManager.
Definition at line 121 of file RegionPass.h.
References llvm::PMT_RegionPassManager.
|
inlineoverridevirtual |
getPassName - Return a nice clean name for a pass.
This usually implemented in terms of the name that is registered by one of the Registration templates, but can be overloaded directly.
Reimplemented from llvm::Pass.
Definition at line 106 of file RegionPass.h.
Execute all of the passes scheduled for execution.
run - Execute all of the passes scheduled for execution.
Keep track of whether any of the passes modifies the function, and if so, return true.
Implements llvm::FunctionPass.
Definition at line 55 of file RegionPass.cpp.
References addRegionIntoQueue(), Changed, llvm::dbgs(), llvm::PMDataManager::dumpPassInfo(), llvm::PMDataManager::dumpPreservedSet(), llvm::PMDataManager::dumpRequiredSet(), llvm::errs(), llvm::EXECUTION_MSG, F, llvm::Pass::getAnalysis(), getContainedPass(), llvm::PMDataManager::getNumContainedPasses(), llvm::getPassTimer(), llvm::PMDataManager::initializeAnalysisImpl(), llvm::PMDataManager::isPassDebuggingExecutionsOrMore(), LLVM_DEBUG, llvm_unreachable, llvm::MODIFICATION_MSG, llvm::ON_REGION_MSG, P, llvm::PMDataManager::populateInheritedAnalysis(), llvm::PMDataManager::recordAvailableAnalysis(), llvm::PMDataManager::removeDeadPasses(), llvm::PMDataManager::removeNotPreservedAnalysis(), llvm::PMDataManager::TPM, llvm::PMDataManager::verifyPreservedAnalysis(), and X.
|
static |
Definition at line 94 of file RegionPass.h.
Referenced by RGPassManager().