|
LLVM
4.0.0
|
A pass that runs on each Region in a function. More...
#include <RegionPass.h>
Public Member Functions | |
| RegionPass (char &pid) | |
To be implemented by every RegionPass | |
| virtual bool | runOnRegion (Region *R, RGPassManager &RGM)=0 |
| Run the pass on a specific Region. More... | |
| Pass * | createPrinterPass (raw_ostream &O, const std::string &Banner) const override |
| Get a pass to print the LLVM IR in the region. More... | |
| virtual bool | doInitialization (Region *R, RGPassManager &RGM) |
| virtual bool | doFinalization () |
PassManager API | |
| void | preparePassManager (PMStack &PMS) override |
| Check if available pass managers are suitable for this pass or not. More... | |
| void | assignPassManager (PMStack &PMS, PassManagerType PMT=PMT_RegionPassManager) override |
| Assign pass manager to manage this pass. More... | |
| PassManagerType | getPotentialPassManagerType () const override |
| Return what kind of Pass Manager can manage this pass. More... | |
Public Member Functions inherited from llvm::Pass | |
| Pass (PassKind K, char &pid) | |
| virtual | ~Pass () |
| PassKind | getPassKind () const |
| virtual StringRef | getPassName () const |
| getPassName - Return a nice clean name for a pass. More... | |
| AnalysisID | getPassID () const |
| getPassID - Return the PassID number that corresponds to this pass. More... | |
| virtual bool | doInitialization (Module &) |
| doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run. More... | |
| virtual bool | doFinalization (Module &) |
| doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes have run. More... | |
| virtual void | print (raw_ostream &O, const Module *M) const |
| print - Print out the internal state of the pass. More... | |
| void | dump () const |
| void | setResolver (AnalysisResolver *AR) |
| AnalysisResolver * | getResolver () const |
| virtual void | getAnalysisUsage (AnalysisUsage &) const |
| getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. More... | |
| 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. More... | |
| virtual void * | getAdjustedAnalysisPointer (AnalysisID ID) |
| getAdjustedAnalysisPointer - This method is used when a pass implements an analysis interface through multiple inheritance. More... | |
| virtual ImmutablePass * | getAsImmutablePass () |
| virtual PMDataManager * | getAsPMDataManager () |
| virtual void | verifyAnalysis () const |
| verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis information. More... | |
| virtual void | dumpPassStructure (unsigned Offset=0) |
| 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. More... | |
| bool | mustPreserveAnalysisID (char &AID) const |
| mustPreserveAnalysisID - This method serves the same function as getAnalysisIfAvailable, but works if you just have an AnalysisID. More... | |
| 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. More... | |
| template<typename AnalysisType > | |
| AnalysisType & | getAnalysis (Function &F) |
| getAnalysis<AnalysisType>() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function. More... | |
| template<typename AnalysisType > | |
| AnalysisType & | getAnalysisID (AnalysisID PI) const |
| template<typename AnalysisType > | |
| AnalysisType & | getAnalysisID (AnalysisID PI, Function &F) |
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) |
A pass that runs on each Region in a function.
RegionPass is managed by RGPassManager.
Definition at line 34 of file RegionPass.h.
|
inlineexplicit |
Definition at line 36 of file RegionPass.h.
|
overridevirtual |
Assign pass manager to manage this pass.
Reimplemented from llvm::Pass.
Definition at line 240 of file RegionPass.cpp.
References llvm::PMDataManager::add(), llvm::PMTopLevelManager::addIndirectPassManager(), assert(), llvm::PMStack::empty(), llvm::PMDataManager::getPassManagerType(), llvm::PMT_RegionPassManager, llvm::PMStack::pop(), llvm::PMDataManager::populateInheritedAnalysis(), llvm::PMStack::push(), llvm::PMTopLevelManager::schedulePass(), and llvm::PMStack::top().
|
overridevirtual |
Get a pass to print the LLVM IR in the region.
Get the printer pass.
| O | The output stream to print the Region. |
| Banner | The banner to separate different printed passes. |
Implements llvm::Pass.
Definition at line 277 of file RegionPass.cpp.
|
inlinevirtual |
Definition at line 65 of file RegionPass.h.
Referenced by llvm::RGPassManager::runOnFunction().
|
inlinevirtual |
Definition at line 64 of file RegionPass.h.
Referenced by llvm::RGPassManager::runOnFunction().
|
inlineoverridevirtual |
Return what kind of Pass Manager can manage this pass.
Reimplemented from llvm::Pass.
Definition at line 77 of file RegionPass.h.
References llvm::PMT_RegionPassManager.
|
overridevirtual |
Check if available pass managers are suitable for this pass or not.
Reimplemented from llvm::Pass.
Definition at line 223 of file RegionPass.cpp.
References llvm::PMStack::empty(), llvm::PMDataManager::getPassManagerType(), llvm::PMT_RegionPassManager, llvm::PMStack::pop(), llvm::PMDataManager::preserveHigherLevelAnalysis(), and llvm::PMStack::top().
|
pure virtual |
Run the pass on a specific Region.
Accessing regions not contained in the current region is not allowed.
| R | The region this pass is run on. |
| RGM | The RegionPassManager that manages this Pass. |
Referenced by llvm::RGPassManager::runOnFunction().
1.8.6