class LoopPass
Declaration
class LoopPass : public Pass { /* full declaration omitted */ };
Description
Pass interface - Implemented by all 'passes'. Subclass this if you are an interprocedural optimization or you do not fit into any of the more constrained passes described below.
Declared at: llvm/include/llvm/Analysis/LoopPass.h:28
Inherits from: Pass
Method Overview
- public LoopPass(char & pid)
- public void assignPassManager(llvm::PMStack & PMS, llvm::PassManagerType PMT)
- public virtual void cloneBasicBlockAnalysis(llvm::BasicBlock * F, llvm::BasicBlock * T, llvm::Loop * L)
- public llvm::Pass * createPrinterPass(llvm::raw_ostream & O, const std::string & Banner) const
- public virtual void deleteAnalysisLoop(llvm::Loop * L)
- public virtual void deleteAnalysisValue(llvm::Value * V, llvm::Loop * L)
- public virtual bool doFinalization()
- public virtual bool doInitialization(llvm::Loop * L, llvm::LPPassManager & LPM)
- public llvm::PassManagerType getPotentialPassManagerType() const
- public void preparePassManager(llvm::PMStack & PMS)
- public virtual bool runOnLoop(llvm::Loop * L, llvm::LPPassManager & LPM)
- protected bool skipLoop(const llvm::Loop * L) const
Inherited from Pass:
- public assignPassManager
- public createPass
- public createPrinterPass
- public doFinalization
- public doInitialization
- public dump
- public dumpPassStructure
- public getAdjustedAnalysisPointer
- public getAnalysis
- public getAnalysis
- public getAnalysisID
- public getAnalysisID
- public getAnalysisIfAvailable
- public getAnalysisUsage
- public getAsImmutablePass
- public getAsPMDataManager
- public getPassID
- public getPassKind
- public getPassName
- public getPotentialPassManagerType
- public getResolver
- public lookupPassInfo
- public lookupPassInfo
- public mustPreserveAnalysisID
- public preparePassManager
- public print
- public releaseMemory
- public setResolver
- public verifyAnalysis
Methods
¶LoopPass(char& pid)
LoopPass(char& pid)
Declared at: llvm/include/llvm/Analysis/LoopPass.h:30
Parameters
- char& pid
¶void assignPassManager(llvm::PMStack& PMS,
llvm::PassManagerType PMT)
void assignPassManager(llvm::PMStack& PMS,
llvm::PassManagerType PMT)
Description
Assign pass manager to manage this pass
Declared at: llvm/include/llvm/Analysis/LoopPass.h:62
Parameters
- llvm::PMStack& PMS
- llvm::PassManagerType PMT
¶virtual void cloneBasicBlockAnalysis(
llvm::BasicBlock* F,
llvm::BasicBlock* T,
llvm::Loop* L)
virtual void cloneBasicBlockAnalysis(
llvm::BasicBlock* F,
llvm::BasicBlock* T,
llvm::Loop* L)
Description
Each loop pass can override these simple analysis hooks to update desired analysis information. cloneBasicBlockAnalysis - Clone analysis info associated with basic block.
Declared at: llvm/include/llvm/Analysis/LoopPass.h:79
Parameters
¶llvm::Pass* createPrinterPass(
llvm::raw_ostream& O,
const std::string& Banner) const
llvm::Pass* createPrinterPass(
llvm::raw_ostream& O,
const std::string& Banner) const
Description
getPrinterPass - Get a pass to print the function corresponding to a Loop.
Declared at: llvm/include/llvm/Analysis/LoopPass.h:34
Parameters
- llvm::raw_ostream& O
- const std::string& Banner
¶virtual void deleteAnalysisLoop(llvm::Loop* L)
virtual void deleteAnalysisLoop(llvm::Loop* L)
Description
Delete analysis info associated with Loop L. Called to notify a Pass that a loop has been deleted and any associated analysis values can be deleted.
Declared at: llvm/include/llvm/Analysis/LoopPass.h:87
Parameters
- llvm::Loop* L
¶virtual void deleteAnalysisValue(llvm::Value* V,
llvm::Loop* L)
virtual void deleteAnalysisValue(llvm::Value* V,
llvm::Loop* L)
Description
deleteAnalysisValue - Delete analysis info associated with value V.
Declared at: llvm/include/llvm/Analysis/LoopPass.h:82
Parameters
- llvm::Value* V
- llvm::Loop* L
¶virtual bool doFinalization()
virtual bool doFinalization()
Declared at: llvm/include/llvm/Analysis/LoopPass.h:51
¶virtual bool doInitialization(
llvm::Loop* L,
llvm::LPPassManager& LPM)
virtual bool doInitialization(
llvm::Loop* L,
llvm::LPPassManager& LPM)
Declared at: llvm/include/llvm/Analysis/LoopPass.h:45
Parameters
- llvm::Loop* L
- llvm::LPPassManager& LPM
¶llvm::PassManagerType
getPotentialPassManagerType() const
llvm::PassManagerType
getPotentialPassManagerType() const
Description
Return what kind of Pass Manager can manage this pass.
Declared at: llvm/include/llvm/Analysis/LoopPass.h:65
¶void preparePassManager(llvm::PMStack& PMS)
void preparePassManager(llvm::PMStack& PMS)
Description
Check if available pass managers are suitable for this pass or not.
Declared at: llvm/include/llvm/Analysis/LoopPass.h:59
Parameters
- llvm::PMStack& PMS
¶virtual bool runOnLoop(llvm::Loop* L,
llvm::LPPassManager& LPM)
virtual bool runOnLoop(llvm::Loop* L,
llvm::LPPassManager& LPM)
Declared at: llvm/include/llvm/Analysis/LoopPass.h:39
Parameters
- llvm::Loop* L
- llvm::LPPassManager& LPM
¶bool skipLoop(const llvm::Loop* L) const
bool skipLoop(const llvm::Loop* L) const
Description
Optional passes call this function to check whether the pass should be skipped. This is the case when Attribute::OptimizeNone is set or when optimization bisect is over the limit.
Declared at: llvm/include/llvm/Analysis/LoopPass.h:93
Parameters
- const llvm::Loop* L