LLVM: llvm::RegionPass Class Reference (original) (raw)

A pass that runs on each Region in a function. More...

#include "[llvm/Analysis/RegionPass.h](RegionPass%5F8h%5Fsource.html)"

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.
Pass * createPrinterPass (raw_ostream &O, const std::string &Banner) const override
Get a pass to print the LLVM IR in the region.
virtual bool doInitialization (Region *R, RGPassManager &RGM)
virtual bool doFinalization ()
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.
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
virtual StringRef getPassName () const
getPassName - Return a nice clean name for a pass.
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 void print (raw_ostream &OS, const Module *M) const
print - Print out the internal state of the pass.
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.
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 PMDataManager * getAsPMDataManager ()
virtual void verifyAnalysis () const
verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis information.
virtual void dumpPassStructure (unsigned Offset=0)
template
AnalysisType * getAnalysisIfAvailable () const
getAnalysisIfAvailable() - 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
AnalysisType & getAnalysis () const
getAnalysis() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function.
template
AnalysisType & getAnalysis (Function &F, bool *Changed=nullptr)
getAnalysis() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function.
template
AnalysisType & getAnalysisID (AnalysisID PI) const
template
AnalysisType & getAnalysisID (AnalysisID PI, Function &F, bool *Changed=nullptr)
PassManager API
void preparePassManager (PMStack &PMS) override
Check if available pass managers are suitable for this pass or not.
void assignPassManager (PMStack &PMS, PassManagerType PMT=PMT_RegionPassManager) override
Assign pass manager to manage this pass.
PassManagerType getPotentialPassManagerType () const override
Return what kind of Pass Manager can manage this pass.
bool skipRegion (Region &R) const
Optional passes call this function to check whether the pass should be skipped.

A pass that runs on each Region in a function.

RegionPass is managed by RGPassManager.

Definition at line 33 of file RegionPass.h.

llvm::RegionPass::RegionPass ( char & pid) inlineexplicit

assignPassManager()

Assign pass manager to manage this pass.

Reimplemented from llvm::Pass.

Definition at line 237 of file RegionPass.cpp.

References llvm::PMDataManager::add(), llvm::PMTopLevelManager::addIndirectPassManager(), assert(), llvm::PMStack::empty(), llvm::PMDataManager::getPassManagerType(), llvm::PMDataManager::getTopLevelManager(), llvm::PMT_RegionPassManager, llvm::PMStack::pop(), llvm::PMDataManager::populateInheritedAnalysis(), llvm::PMStack::push(), llvm::PMTopLevelManager::schedulePass(), and llvm::PMStack::top().

createPrinterPass()

Get a pass to print the LLVM IR in the region.

Get the printer pass.

Parameters

O The output stream to print the Region.
Banner The banner to separate different printed passes.

Returns

The pass to print the LLVM IR in the region.

Implements llvm::Pass.

Definition at line 274 of file RegionPass.cpp.

References llvm::Pass::Pass().

Referenced by runOnRegion().

doFinalization() [1/2]

virtual bool llvm::RegionPass::doFinalization ( ) inlinevirtual

doFinalization() [2/2]

virtual bool llvm::Pass::doFinalization ( Module & ) inlinevirtual

doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes have run.

Reimplemented from llvm::Pass.

Definition at line 132 of file Pass.h.

doInitialization() [1/2]

virtual bool llvm::Pass::doInitialization ( Module & ) inlinevirtual

doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run.

Reimplemented from llvm::Pass.

Definition at line 128 of file Pass.h.

doInitialization() [2/2]

getPotentialPassManagerType()

PassManagerType llvm::RegionPass::getPotentialPassManagerType ( ) const inlineoverridevirtual

preparePassManager()

void RegionPass::preparePassManager ( PMStack & ) overridevirtual

runOnRegion()

skipRegion()

bool RegionPass::skipRegion ( Region & R) const protected

The documentation for this class was generated from the following files: