| 
    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().