15 #ifndef LLVM_ANALYSIS_LOOPPASS_H
16 #define LLVM_ANALYSIS_LOOPPASS_H
100 return "Loop Pass Manager";
110 assert(N <
PassVector.size() &&
"Pass number out of range!");
151 std::deque<Loop *> LQ;
virtual void assignPassManager(PMStack &PMS, PassManagerType PMT)
Assign pass manager to manage this pass.
virtual bool doFinalization(Module &)
bool runOnFunction(Function &F)
virtual PassManagerType getPassManagerType() const
void insertLoopIntoQueue(Loop *L)
void getAnalysisUsage(AnalysisUsage &Info) const
Pass Manager itself does not invalidate any analysis info.
virtual bool doInitialization(Module &)
virtual bool doInitialization(Loop *L, LPPassManager &LPM)
void insertLoop(Loop *L, Loop *ParentLoop)
LLVM Basic Block Representation.
virtual bool doFinalization()
Pass * createPrinterPass(raw_ostream &O, const std::string &Banner) const
void dumpPassStructure(unsigned Offset)
Print passes managed by this manager.
virtual PMDataManager * getAsPMDataManager()
void deleteSimpleAnalysisValue(Value *V, Loop *L)
deleteSimpleAnalysisValue - Invoke deleteAnalysisValue hook for all passes.
void deleteLoopFromQueue(Loop *L)
Delete loop from the loop queue and loop hierarchy (LoopInfo).
virtual Pass * getAsPass()
SmallVector< Pass *, 16 > PassVector
virtual bool runOnLoop(Loop *L, LPPassManager &LPM)=0
void preparePassManager(PMStack &PMS)
Check if available pass managers are suitable for this pass or not.
void cloneBasicBlockSimpleAnalysis(BasicBlock *From, BasicBlock *To, Loop *L)
LoopPass * getContainedPass(unsigned N)
virtual void cloneBasicBlockAnalysis(BasicBlock *F, BasicBlock *T, Loop *L)
LLVM Value Representation.
virtual void deleteAnalysisValue(Value *V, Loop *L)
deleteAnalysisValue - Delete analysis info associated with value V.
virtual PassManagerType getPotentialPassManagerType() const
Return what kind of Pass Manager can manage this pass.
virtual const char * getPassName() const