MLIR: include/mlir/Dialect/SparseTensor/Transforms/Passes.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13 #ifndef MLIR_DIALECT_SPARSETENSOR_TRANSFORMS_PASSES_H_
14 #define MLIR_DIALECT_SPARSETENSOR_TRANSFORMS_PASSES_H_
15
20
21
22
23
24
25 namespace mlir {
26
27 namespace bufferization {
28 struct OneShotBufferizationOptions;
29 }
30
31
32
33
34
35
42 };
43
44
46 kAll,
47 kGenericOnly,
48 kExceptGeneric,
49 };
50
51
53 kFunctional,
54 kSparseIterator,
55 kDebugInterface,
56 };
57
58 #define GEN_PASS_DECL
59 #include "mlir/Dialect/SparseTensor/Transforms/Passes.h.inc"
60
61
62
63
64
66
69
70
71
72
73
76
79
80
81
82
83
85
87
88
89
90
91
92
95 bool enableRT)
98
101
105
109 };
110
111
115
117 std::unique_ptr
119
120
121
122
123
124
126
128
129
130
131
132
134 bool enableRT, bool enableConvert);
135
138 bool enableConvert);
139
140
141
142
143
145
147
148
149
150
151
152
155 };
156
159
161
162
163
164
165
166
168 public:
170 };
171
172
175
177
178
179
180
181
182
184 public:
186 };
187
188
191 bool createSparseDeallocs,
192 bool enableBufferInitialization);
193
195 std::unique_ptr
197 bool enableBufferInitialization);
198
199
200
201
202
204 bool enableBufferInitialization);
205
207 std::unique_ptr
209
210
211
212
213
215 unsigned vectorLength,
216 bool enableVLAVectorization,
217 bool enableSIMDIndex32);
218
221 bool enableVLAVectorization,
222 bool enableSIMDIndex32);
223
224
225
226
227
229 unsigned numThreads);
230
232 bool enableRT);
233
236 bool enableRT);
237
238
239
240
241
243 public:
245 };
246
250
251
252
253
254
257
259
263 bool createSparseDeallocs, bool enableRuntimeLibrary,
264 bool enableBufferInitialization, unsigned vectorLength,
265 bool enableVLAVectorization, bool enableSIMDIndex32, bool enableGPULibgen,
268
269
270
271
272
274
275
276
277
278
279
280 #define GEN_PASS_REGISTRATION
281 #include "mlir/Dialect/SparseTensor/Transforms/Passes.h.inc"
282
283 }
284
285 #endif
static llvm::ManagedStatic< PassManagerOptions > options
Sparse tensor type converter into an actual buffer.
SparseTensorTypeToBufferConverter()
Sparse tensor type converter into an opaque pointer.
SparseTensorTypeToPtrConverter()
StorageSpecifierToLLVMTypeConverter()
Include the generated interface declarations.
std::unique_ptr< Pass > createSparseVectorizationPass()
std::unique_ptr< Pass > createSparseAssembler()
void populateStorageSpecifierToLLVMPatterns(const TypeConverter &converter, RewritePatternSet &patterns)
std::unique_ptr< Pass > createLowerSparseOpsToForeachPass()
std::unique_ptr< Pass > createSparseTensorCodegenPass()
void populateSparseTensorCodegenPatterns(const TypeConverter &typeConverter, RewritePatternSet &patterns, bool createSparseDeallocs, bool enableBufferInitialization)
Sets up sparse tensor codegen rules.
std::unique_ptr< Pass > createSparseGPUCodegenPass()
std::unique_ptr< Pass > createSparseSpaceCollapsePass()
bufferization::OneShotBufferizationOptions getBufferizationOptionsForSparsification(bool analysisOnly)
std::unique_ptr< Pass > createSparseReinterpretMapPass()
void populateSparseReinterpretMap(RewritePatternSet &patterns, ReinterpretMapScope scope)
void populateSparseGPULibgenPatterns(RewritePatternSet &patterns, bool enableRT)
std::unique_ptr< Pass > createSparseTensorConversionPass()
std::unique_ptr< Pass > createSparseBufferRewritePass()
std::unique_ptr< Pass > createSparsificationAndBufferizationPass()
void populateSparseTensorConversionPatterns(const TypeConverter &typeConverter, RewritePatternSet &patterns)
Sets up sparse tensor conversion rules.
void populateSparseBufferRewriting(RewritePatternSet &patterns, bool enableBufferInitialization)
void populatePreSparsificationRewriting(RewritePatternSet &patterns)
void populateSparseVectorizationPatterns(RewritePatternSet &patterns, unsigned vectorLength, bool enableVLAVectorization, bool enableSIMDIndex32)
Populates the given patterns list with vectorization rules.
SparseParallelizationStrategy
Defines a parallelization strategy.
ReinterpretMapScope
Defines a scope for reinterpret map pass.
void populateSparsificationPatterns(RewritePatternSet &patterns, const SparsificationOptions &options=SparsificationOptions())
Sets up sparsification rewriting rules with the given options.
const FrozenRewritePatternSet & patterns
void populateLowerSparseIterationToSCFPatterns(const TypeConverter &converter, RewritePatternSet &patterns)
SparseEmitStrategy
Defines a scope for reinterpret map pass.
void populateLowerSparseOpsToForeachPatterns(RewritePatternSet &patterns, bool enableRT, bool enableConvert)
std::unique_ptr< Pass > createStorageSpecifierToLLVMPass()
std::unique_ptr< Pass > createPreSparsificationRewritePass()
std::unique_ptr< Pass > createLowerForeachToSCFPass()
void populateSparseAssembler(RewritePatternSet &patterns, bool directOut)
void populateStageSparseOperationsPatterns(RewritePatternSet &patterns)
Sets up StageSparseOperation rewriting rules.
std::unique_ptr< Pass > createLowerSparseIterationToSCFPass()
void populateSparseGPUCodegenPatterns(RewritePatternSet &patterns, unsigned numThreads)
std::unique_ptr< Pass > createStageSparseOperationsPass()
std::unique_ptr< Pass > createSparsificationPass()
void populateLowerForeachToSCFPatterns(RewritePatternSet &patterns)
Type converter for iter_space and iterator.
SparseIterationTypeConverter()
Options for the Sparsification pass.
SparseEmitStrategy sparseEmitStrategy
SparseParallelizationStrategy parallelizationStrategy
SparsificationOptions(SparseParallelizationStrategy p, SparseEmitStrategy d, bool enableRT)
SparsificationOptions(SparseParallelizationStrategy p, bool enableRT)
bool enableRuntimeLibrary
Options for analysis-enabled bufferization.