15 #ifndef LLVM_ANALYSIS_LOOPPASS_H 16 #define LLVM_ANALYSIS_LOOPPASS_H 36 const std::string &Banner)
const override;
119 assert(N < PassVector.size() &&
"Pass number out of range!");
130 void addLoop(
Loop &L);
133 void markLoopAsDeleted(
Loop &L);
148 void deleteSimpleAnalysisValue(
Value *V,
Loop *L);
152 void deleteSimpleAnalysisLoop(
Loop *L);
155 std::deque<Loop *> LQ;
158 bool CurrentLoopDeleted;
Pass interface - Implemented by all 'passes'.
PassManagerType
Different types of internal pass managers.
bool runOnFunction(Function &F) override
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass...
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
This class represents lattice values for constants.
virtual void dumpPassStructure(unsigned Offset=0)
virtual void deleteAnalysisLoop(Loop *L)
Delete analysis info associated with Loop L.
StringRef getPassName() const override
getPassName - Return a nice clean name for a pass.
void assignPassManager(PMStack &PMS, PassManagerType PMT) override
Assign pass manager to manage this pass.
PMDataManager * getAsPMDataManager() override
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
virtual bool doFinalization(Module &)
doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes...
PMStack - This class implements a stack data structure of PMDataManager pointers. ...
Pass * createPrinterPass(raw_ostream &O, const std::string &Banner) const override
getPrinterPass - Get a pass to print the function corresponding to a Loop.
virtual void getAnalysisUsage(AnalysisUsage &) const
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
Analysis containing CSE Info
virtual bool doInitialization(Module &)
doInitialization - Virtual method overridden by subclasses to do any necessary initialization before ...
virtual bool doInitialization(Loop *L, LPPassManager &LPM)
static bool runOnFunction(Function &F, bool PostInlining)
LLVM Basic Block Representation.
virtual bool doFinalization()
Represent the analysis usage information of a pass.
FunctionPass class - This class is used to implement most global optimizations.
bool skipLoop(const Loop *L) const
Optional passes call this function to check whether the pass should be skipped.
BlockVerifier::State From
PassManagerType getPotentialPassManagerType() const override
Return what kind of Pass Manager can manage this pass.
void setPreservesAll()
Set by analyses that do not transform their input at all.
void preparePassManager(PMStack &PMS) override
Check if available pass managers are suitable for this pass or not.
virtual bool runOnLoop(Loop *L, LPPassManager &LPM)=0
Represents a single loop in the control flow graph.
LoopPass * getContainedPass(unsigned N)
PMDataManager provides the common place to manage the analysis data used by pass managers.
virtual void cloneBasicBlockAnalysis(BasicBlock *F, BasicBlock *T, Loop *L)
SimpleAnalysis - Provides simple interface to update analysis info maintained by various passes...
PassManagerType getPassManagerType() const override
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
LLVM Value Representation.
virtual void deleteAnalysisValue(Value *V, Loop *L)
deleteAnalysisValue - Delete analysis info associated with value V.
This class implements an extremely fast bulk output stream that can only output to a stream...
StringRef - Represent a constant reference to a string, i.e.
Pass * getAsPass() override
void initializeLCSSAVerificationPassPass(PassRegistry &)