13 #ifndef MLIR_DIALECT_SPARSETENSOR_TRANSFORMS_PASSES_H_
14 #define MLIR_DIALECT_SPARSETENSOR_TRANSFORMS_PASSES_H_
27 namespace bufferization {
28 struct OneShotBufferizationOptions;
59 #include "mlir/Dialect/SparseTensor/Transforms/Passes.h.inc"
117 std::unique_ptr<Pass>
134 bool enableRT,
bool enableConvert);
191 bool createSparseDeallocs,
192 bool enableBufferInitialization);
195 std::unique_ptr<Pass>
197 bool enableBufferInitialization);
204 bool enableBufferInitialization);
207 std::unique_ptr<Pass>
215 unsigned vectorLength,
216 bool enableVLAVectorization,
217 bool enableSIMDIndex32);
221 bool enableVLAVectorization,
222 bool enableSIMDIndex32);
229 unsigned numThreads);
263 bool createSparseDeallocs,
bool enableRuntimeLibrary,
264 bool enableBufferInitialization,
unsigned vectorLength,
265 bool enableVLAVectorization,
bool enableSIMDIndex32,
bool enableGPULibgen,
280 #define GEN_PASS_REGISTRATION
281 #include "mlir/Dialect/SparseTensor/Transforms/Passes.h.inc"
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.
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.