LLVM: include/llvm/Analysis/LoopPass.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_ANALYSIS_LOOPPASS_H
15#define LLVM_ANALYSIS_LOOPPASS_H
16
20#include
21
22namespace llvm {
23
28
30public:
32
33
34
36 const std::string &Banner) const override;
37
38
39
41
44
45
49
50
51
53
54
55
56
57
58
59
60 void preparePassManager(PMStack &PMS) override;
61
62
64
65
69
70protected:
71
72
73
74 bool skipLoop(const Loop *L) const;
75};
76
78public:
81
82
83
85
86
87
89
91
94
95
96 void dumpPassStructure(unsigned Offset) override;
97
103
107
108public:
109
110 void addLoop(Loop &L);
111
112
113 void markLoopAsDeleted(Loop &L);
114
115private:
116 std::deque<Loop *> LQ;
118 Loop *CurrentLoop;
119 bool CurrentLoopDeleted;
120};
121
122
123
124
135
136}
137
138#endif
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
Analysis containing CSE Info
static bool runOnFunction(Function &F, bool PostInlining)
Represent the analysis usage information of a pass.
void setPreservesAll()
Set by analyses that do not transform their input at all.
static char ID
Definition LoopPass.h:79
Pass * getAsPass() override
Definition LoopPass.h:93
PassManagerType getPassManagerType() const override
Definition LoopPass.h:104
StringRef getPassName() const override
getPassName - Return a nice clean name for a pass.
Definition LoopPass.h:90
PMDataManager * getAsPMDataManager() override
Definition LoopPass.h:92
LoopPass * getContainedPass(unsigned N)
Definition LoopPass.h:98
void getAnalysisUsage(AnalysisUsage &Info) const override
Pass Manager itself does not invalidate any analysis info.
PassManagerType getPotentialPassManagerType() const override
Return what kind of Pass Manager can manage this pass.
Definition LoopPass.h:66
virtual bool doInitialization(Loop *L, LPPassManager &LPM)
Definition LoopPass.h:46
LoopPass(char &pid)
Definition LoopPass.h:31
virtual bool runOnLoop(Loop *L, LPPassManager &LPM)=0
virtual bool doFinalization()
Definition LoopPass.h:52
Represents a single loop in the control flow graph.
SmallVector< Pass *, 16 > PassVector
PMStack - This class implements a stack data structure of PMDataManager pointers.
Pass interface - Implemented by all 'passes'.
Pass(PassKind K, char &pid)
virtual bool doInitialization(Module &)
doInitialization - Virtual method overridden by subclasses to do any necessary initialization before ...
virtual bool doFinalization(Module &)
doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes...
StringRef - Represent a constant reference to a string, i.e.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
PassManagerType
Different types of internal pass managers.
@ PMT_LoopPassManager
LPPassManager.
static LLVM_ABI char ID
Definition LoopPass.h:126
bool runOnFunction(Function &F) override
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
Definition LoopPass.h:129
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
Definition LoopPass.h:131
LLVM_ABI LCSSAVerificationPass()