13 #ifndef MLIR_DIALECT_SPARSETENSOR_TRANSFORMS_PASSES_H_
14 #define MLIR_DIALECT_SPARSETENSOR_TRANSFORMS_PASSES_H_
27 namespace bufferization {
28 struct OneShotBufferizationOptions;
58 namespace sparse_tensor {
69 #include "mlir/Dialect/SparseTensor/Transforms/Passes.h.inc"
132 std::unique_ptr<Pass>
149 bool enableRT,
bool enableConvert);
206 bool createSparseDeallocs,
207 bool enableBufferInitialization);
210 std::unique_ptr<Pass>
212 bool enableBufferInitialization);
219 bool enableBufferInitialization);
222 std::unique_ptr<Pass>
230 unsigned vectorLength,
231 bool enableVLAVectorization,
232 bool enableSIMDIndex32);
236 bool enableVLAVectorization,
237 bool enableSIMDIndex32);
244 unsigned numThreads);
278 bool createSparseDeallocs,
bool enableRuntimeLibrary,
279 bool enableBufferInitialization,
unsigned vectorLength,
280 bool enableVLAVectorization,
bool enableSIMDIndex32,
bool enableGPULibgen,
295 #define GEN_PASS_REGISTRATION
296 #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()
LoopOrderingStrategy
Defines a strategy for loop ordering during sparse code generation.
@ kDefault
Default strategy (eagerly selects last loop in topological sort).
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 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 populateSparseReinterpretMap(RewritePatternSet &patterns, ReinterpretMapScope scope, sparse_tensor::LoopOrderingStrategy strategy=sparse_tensor::LoopOrderingStrategy::kDefault)
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.