LLVM: include/llvm/Transforms/Vectorize/LoopVectorize.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56#ifndef LLVM_TRANSFORMS_VECTORIZE_LOOPVECTORIZE_H
57#define LLVM_TRANSFORMS_VECTORIZE_LOOPVECTORIZE_H
58
63#include
64
65namespace llvm {
66
81
84
86
87
89
90
91
93
94
95
96
97
98
99
100
101
102
109
114
119};
120
121
129
130
132private:
133
134
135 bool InterleaveOnlyWhenForced;
136
137
138
139 bool VectorizeOnlyWhenForced;
140
141public:
143
156
161
162
164
166};
167
168
169
170
171
175
176
184
185
186
192}
193
194#endif
This header defines various interfaces for pass management in LLVM.
A cache of @llvm.assume calls within a function.
BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequen...
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
Represents a single loop in the control flow graph.
A set of analyses that are preserved following a run of a transformation pass.
Analysis providing profile information.
The main scalar evolution driver.
StringRef - Represent a constant reference to a string, i.e.
Provides information about what library functions are available for the current target.
This pass provides access to the codegen interfaces that are needed for IR-level transformations.
LLVM Value Representation.
An efficient, type-erasing, non-owning reference to a callable.
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.
LLVM_ABI cl::opt< bool > EnableLoopVectorization
LLVM_ABI void reportVectorizationFailure(const StringRef DebugMsg, const StringRef OREMsg, const StringRef ORETag, OptimizationRemarkEmitter *ORE, Loop *TheLoop, Instruction *I=nullptr)
Reports a vectorization failure: print DebugMsg for debugging purposes along with the corresponding o...
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
LLVM_ABI cl::opt< bool > EnableLoopInterleaving
A CRTP mix-in that provides informational APIs needed for analysis passes.
A special type used by analysis passes to provide an address that identifies that particular analysis...
Definition LoopVectorize.h:85
LoopVectorizeOptions(bool InterleaveOnlyWhenForced, bool VectorizeOnlyWhenForced)
Definition LoopVectorize.h:105
LoopVectorizeOptions & setVectorizeOnlyWhenForced(bool Value)
Definition LoopVectorize.h:115
LoopVectorizeOptions & setInterleaveOnlyWhenForced(bool Value)
Definition LoopVectorize.h:110
LoopVectorizeOptions()
The current defaults when creating the pass with no arguments are: EnableLoopInterleaving = true and ...
Definition LoopVectorize.h:103
bool InterleaveOnlyWhenForced
If false, consider all loops for interleaving.
Definition LoopVectorize.h:88
bool VectorizeOnlyWhenForced
If false, consider all loops for vectorization.
Definition LoopVectorize.h:92
TargetLibraryInfo * TLI
Definition LoopVectorize.h:149
LLVM_ABI LoopVectorizeResult runImpl(Function &F)
LLVM_ABI bool processLoop(Loop *L)
ProfileSummaryInfo * PSI
Definition LoopVectorize.h:154
LoopInfo * LI
Definition LoopVectorize.h:145
LoopAccessInfoManager * LAIs
Definition LoopVectorize.h:152
DemandedBits * DB
Definition LoopVectorize.h:150
LLVM_ABI void printPipeline(raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
LLVM_ABI LoopVectorizePass(LoopVectorizeOptions Opts={})
ScalarEvolution * SE
Definition LoopVectorize.h:144
AssumptionCache * AC
Definition LoopVectorize.h:151
AAResults * AA
Definition LoopVectorize.h:155
LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
OptimizationRemarkEmitter * ORE
Definition LoopVectorize.h:153
DominatorTree * DT
Definition LoopVectorize.h:147
std::function< BlockFrequencyInfo &()> GetBFI
Definition LoopVectorize.h:148
TargetTransformInfo * TTI
Definition LoopVectorize.h:146
Storage for information about made changes.
Definition LoopVectorize.h:122
LoopVectorizeResult(bool MadeAnyChange, bool MadeCFGChange)
Definition LoopVectorize.h:126
bool MadeAnyChange
Definition LoopVectorize.h:123
bool MadeCFGChange
Definition LoopVectorize.h:124
A CRTP mix-in to automatically provide informational APIs needed for passes.