MLIR 22.0.0git
Passes.h File Reference
#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Transforms/DialectConversion.h"
#include "mlir/Dialect/SparseTensor/Transforms/Passes.h.inc"

Go to the source code of this file.

Classes

struct  mlir::LowerSparseOpsToForeachOptions
struct  mlir::SparseAssemblerOptions
struct  mlir::SparseBufferRewriteOptions
struct  mlir::SparseGPUCodegenOptions
struct  mlir::SparseReinterpretMapOptions
struct  mlir::SparseTensorCodegenOptions
struct  mlir::SparseVectorizationOptions
struct  mlir::SparsificationAndBufferizationOptions
struct  mlir::SparsificationPassOptions
struct  mlir::SparsificationOptions
 Options for the Sparsification pass. More...
struct  mlir::SparseIterationTypeConverter
 Type converter for iter_space and iterator. More...
class  mlir::SparseTensorTypeToPtrConverter
 Sparse tensor type converter into an opaque pointer. More...
class  mlir::SparseTensorTypeToBufferConverter
 Sparse tensor type converter into an actual buffer. More...
class  mlir::StorageSpecifierToLLVMTypeConverter

Namespaces

namespace  mlir
 Include the generated interface declarations.
namespace  mlir::bufferization
namespace  mlir::sparse_tensor

Macros

#define GEN_PASS_DECL
#define GEN_PASS_DECL_LOWERFOREACHTOSCF
#define GEN_PASS_DECL_LOWERSPARSEITERATIONTOSCF
#define GEN_PASS_DECL_LOWERSPARSEOPSTOFOREACH
#define GEN_PASS_DECL_PRESPARSIFICATIONREWRITE
#define GEN_PASS_DECL_SPARSEASSEMBLER
#define GEN_PASS_DECL_SPARSEBUFFERREWRITE
#define GEN_PASS_DECL_SPARSEGPUCODEGEN
#define GEN_PASS_DECL_SPARSEREINTERPRETMAP
#define GEN_PASS_DECL_SPARSESPACECOLLAPSE
#define GEN_PASS_DECL_SPARSETENSORCODEGEN
#define GEN_PASS_DECL_SPARSETENSORCONVERSIONPASS
#define GEN_PASS_DECL_SPARSEVECTORIZATION
#define GEN_PASS_DECL_SPARSIFICATIONANDBUFFERIZATION
#define GEN_PASS_DECL_SPARSIFICATIONPASS
#define GEN_PASS_DECL_STAGESPARSEOPERATIONS
#define GEN_PASS_DECL_STORAGESPECIFIERTOLLVM
#define GEN_PASS_REGISTRATION
 Generate the code for registering passes.
#define GEN_PASS_REGISTRATION_LOWERFOREACHTOSCF
#define GEN_PASS_REGISTRATION_LOWERSPARSEITERATIONTOSCF
#define GEN_PASS_REGISTRATION_LOWERSPARSEOPSTOFOREACH
#define GEN_PASS_REGISTRATION_PRESPARSIFICATIONREWRITE
#define GEN_PASS_REGISTRATION_SPARSEASSEMBLER
#define GEN_PASS_REGISTRATION_SPARSEBUFFERREWRITE
#define GEN_PASS_REGISTRATION_SPARSEGPUCODEGEN
#define GEN_PASS_REGISTRATION_SPARSEREINTERPRETMAP
#define GEN_PASS_REGISTRATION_SPARSESPACECOLLAPSE
#define GEN_PASS_REGISTRATION_SPARSETENSORCODEGEN
#define GEN_PASS_REGISTRATION_SPARSETENSORCONVERSIONPASS
#define GEN_PASS_REGISTRATION_SPARSEVECTORIZATION
#define GEN_PASS_REGISTRATION_SPARSIFICATIONANDBUFFERIZATION
#define GEN_PASS_REGISTRATION_SPARSIFICATIONPASS
#define GEN_PASS_REGISTRATION_STAGESPARSEOPERATIONS
#define GEN_PASS_REGISTRATION_STORAGESPECIFIERTOLLVM

Enumerations

enum class  mlir::SparseParallelizationStrategy {
  mlir::kNone , mlir::kDenseOuterLoop , mlir::kAnyStorageOuterLoop , mlir::kDenseAnyLoop ,
  mlir::kAnyStorageAnyLoop
}
 Defines a parallelization strategy. More...
enum class  mlir::ReinterpretMapScope { mlir::kAll , mlir::kGenericOnly , mlir::kExceptGeneric }
 Defines a scope for reinterpret map pass. More...
enum class  mlir::SparseEmitStrategy { mlir::kFunctional , mlir::kSparseIterator , mlir::kDebugInterface }
 Defines a scope for reinterpret map pass. More...
enum class  mlir::sparse_tensor::LoopOrderingStrategy : unsigned { mlir::sparse_tensor::kDefault , mlir::sparse_tensor::kDenseOuter }
 Defines a strategy for loop ordering during sparse code generation. More...

Functions

void mlir::populateSparseAssembler (RewritePatternSet &patterns, bool directOut)
std::unique_ptr< Passmlir::createSparseAssembler ()
std::unique_ptr< Passmlir::createSparseAssembler (bool directOut)
void mlir::populateSparseReinterpretMap (RewritePatternSet &patterns, ReinterpretMapScope scope, sparse_tensor::LoopOrderingStrategy strategy=sparse_tensor::LoopOrderingStrategy::kDefault)
std::unique_ptr< Passmlir::createSparseReinterpretMapPass ()
std::unique_ptr< Passmlir::createSparseReinterpretMapPass (ReinterpretMapScope scope)
std::unique_ptr< Passmlir::createSparseReinterpretMapPass (ReinterpretMapScope scope, sparse_tensor::LoopOrderingStrategy strategy)
void mlir::populatePreSparsificationRewriting (RewritePatternSet &patterns)
std::unique_ptr< Passmlir::createPreSparsificationRewritePass ()
void mlir::populateSparsificationPatterns (RewritePatternSet &patterns, const SparsificationOptions &options=SparsificationOptions())
 Sets up sparsification rewriting rules with the given options.
std::unique_ptr< Passmlir::createSparsificationPass ()
std::unique_ptr< Passmlir::createSparsificationPass (const SparsificationOptions &options)
void mlir::populateStageSparseOperationsPatterns (RewritePatternSet &patterns)
 Sets up StageSparseOperation rewriting rules.
std::unique_ptr< Passmlir::createStageSparseOperationsPass ()
void mlir::populateLowerSparseOpsToForeachPatterns (RewritePatternSet &patterns, bool enableRT, bool enableConvert)
std::unique_ptr< Passmlir::createLowerSparseOpsToForeachPass ()
std::unique_ptr< Passmlir::createLowerSparseOpsToForeachPass (bool enableRT, bool enableConvert)
void mlir::populateLowerForeachToSCFPatterns (RewritePatternSet &patterns)
std::unique_ptr< Passmlir::createLowerForeachToSCFPass ()
void mlir::populateLowerSparseIterationToSCFPatterns (const TypeConverter &converter, RewritePatternSet &patterns)
std::unique_ptr< Passmlir::createLowerSparseIterationToSCFPass ()
void mlir::populateSparseTensorConversionPatterns (const TypeConverter &typeConverter, RewritePatternSet &patterns)
 Sets up sparse tensor conversion rules.
std::unique_ptr< Passmlir::createSparseTensorConversionPass ()
void mlir::populateSparseTensorCodegenPatterns (const TypeConverter &typeConverter, RewritePatternSet &patterns, bool createSparseDeallocs, bool enableBufferInitialization)
 Sets up sparse tensor codegen rules.
std::unique_ptr< Passmlir::createSparseTensorCodegenPass ()
std::unique_ptr< Passmlir::createSparseTensorCodegenPass (bool createSparseDeallocs, bool enableBufferInitialization)
void mlir::populateSparseBufferRewriting (RewritePatternSet &patterns, bool enableBufferInitialization)
std::unique_ptr< Passmlir::createSparseBufferRewritePass ()
std::unique_ptr< Passmlir::createSparseBufferRewritePass (bool enableBufferInitialization)
void mlir::populateSparseVectorizationPatterns (RewritePatternSet &patterns, unsigned vectorLength, bool enableVLAVectorization, bool enableSIMDIndex32)
 Populates the given patterns list with vectorization rules.
std::unique_ptr< Passmlir::createSparseVectorizationPass ()
std::unique_ptr< Passmlir::createSparseVectorizationPass (unsigned vectorLength, bool enableVLAVectorization, bool enableSIMDIndex32)
void mlir::populateSparseGPUCodegenPatterns (RewritePatternSet &patterns, unsigned numThreads)
void mlir::populateSparseGPULibgenPatterns (RewritePatternSet &patterns, bool enableRT)
std::unique_ptr< Passmlir::createSparseGPUCodegenPass ()
std::unique_ptr< Passmlir::createSparseGPUCodegenPass (unsigned numThreads, bool enableRT)
void mlir::populateStorageSpecifierToLLVMPatterns (const TypeConverter &converter, RewritePatternSet &patterns)
std::unique_ptr< Passmlir::createStorageSpecifierToLLVMPass ()
bufferization::OneShotBufferizationOptions mlir::getBufferizationOptionsForSparsification (bool analysisOnly)
std::unique_ptr< Passmlir::createSparsificationAndBufferizationPass ()
std::unique_ptr< Passmlir::createSparsificationAndBufferizationPass (const bufferization::OneShotBufferizationOptions &bufferizationOptions, const SparsificationOptions &sparsificationOptions, bool createSparseDeallocs, bool enableRuntimeLibrary, bool enableBufferInitialization, unsigned vectorLength, bool enableVLAVectorization, bool enableSIMDIndex32, bool enableGPULibgen, SparseEmitStrategy emitStrategy, SparseParallelizationStrategy parallelizationStrategy)
std::unique_ptr< Passmlir::createSparseSpaceCollapsePass ()
void mlir::registerLowerForeachToSCF ()
void mlir::registerLowerForeachToSCFPass ()
void mlir::registerLowerSparseIterationToSCF ()
void mlir::registerLowerSparseIterationToSCFPass ()
void mlir::registerLowerSparseOpsToForeach ()
void mlir::registerLowerSparseOpsToForeachPass ()
void mlir::registerPreSparsificationRewrite ()
void mlir::registerPreSparsificationRewritePass ()
void mlir::registerSparseAssembler ()
void mlir::registerSparseAssemblerPass ()
void mlir::registerSparseBufferRewrite ()
void mlir::registerSparseBufferRewritePass ()
void mlir::registerSparseGPUCodegen ()
void mlir::registerSparseGPUCodegenPass ()
void mlir::registerSparseReinterpretMap ()
void mlir::registerSparseReinterpretMapPass ()
void mlir::registerSparseSpaceCollapse ()
void mlir::registerSparseSpaceCollapsePass ()
void mlir::registerSparseTensorCodegen ()
void mlir::registerSparseTensorCodegenPass ()
void mlir::registerSparseTensorConversionPass ()
void mlir::registerSparseTensorConversionPassPass ()
void mlir::registerSparseVectorization ()
void mlir::registerSparseVectorizationPass ()
void mlir::registerSparsificationAndBufferization ()
void mlir::registerSparsificationAndBufferizationPass ()
void mlir::registerSparsificationPass ()
void mlir::registerSparsificationPassPass ()
void mlir::registerStageSparseOperations ()
void mlir::registerStageSparseOperationsPass ()
void mlir::registerStorageSpecifierToLLVM ()
void mlir::registerStorageSpecifierToLLVMPass ()
void mlir::registerSparseTensorPasses ()

Macro Definition Documentation

◆ GEN_PASS_DECL

#define GEN_PASS_DECL

Definition at line 69 of file Passes.h.

◆ GEN_PASS_DECL_LOWERFOREACHTOSCF

#define GEN_PASS_DECL_LOWERFOREACHTOSCF

Definition at line 6 of file Passes.h.

◆ GEN_PASS_DECL_LOWERSPARSEITERATIONTOSCF

#define GEN_PASS_DECL_LOWERSPARSEITERATIONTOSCF

Definition at line 7 of file Passes.h.

◆ GEN_PASS_DECL_LOWERSPARSEOPSTOFOREACH

#define GEN_PASS_DECL_LOWERSPARSEOPSTOFOREACH

Definition at line 8 of file Passes.h.

◆ GEN_PASS_DECL_PRESPARSIFICATIONREWRITE

#define GEN_PASS_DECL_PRESPARSIFICATIONREWRITE

Definition at line 9 of file Passes.h.

◆ GEN_PASS_DECL_SPARSEASSEMBLER

#define GEN_PASS_DECL_SPARSEASSEMBLER

Definition at line 10 of file Passes.h.

◆ GEN_PASS_DECL_SPARSEBUFFERREWRITE

#define GEN_PASS_DECL_SPARSEBUFFERREWRITE

Definition at line 11 of file Passes.h.

◆ GEN_PASS_DECL_SPARSEGPUCODEGEN

#define GEN_PASS_DECL_SPARSEGPUCODEGEN

Definition at line 12 of file Passes.h.

◆ GEN_PASS_DECL_SPARSEREINTERPRETMAP

#define GEN_PASS_DECL_SPARSEREINTERPRETMAP

Definition at line 13 of file Passes.h.

◆ GEN_PASS_DECL_SPARSESPACECOLLAPSE

#define GEN_PASS_DECL_SPARSESPACECOLLAPSE

Definition at line 14 of file Passes.h.

◆ GEN_PASS_DECL_SPARSETENSORCODEGEN

#define GEN_PASS_DECL_SPARSETENSORCODEGEN

Definition at line 15 of file Passes.h.

◆ GEN_PASS_DECL_SPARSETENSORCONVERSIONPASS

#define GEN_PASS_DECL_SPARSETENSORCONVERSIONPASS

Definition at line 16 of file Passes.h.

◆ GEN_PASS_DECL_SPARSEVECTORIZATION

#define GEN_PASS_DECL_SPARSEVECTORIZATION

Definition at line 17 of file Passes.h.

◆ GEN_PASS_DECL_SPARSIFICATIONANDBUFFERIZATION

#define GEN_PASS_DECL_SPARSIFICATIONANDBUFFERIZATION

Definition at line 18 of file Passes.h.

◆ GEN_PASS_DECL_SPARSIFICATIONPASS

#define GEN_PASS_DECL_SPARSIFICATIONPASS

Definition at line 19 of file Passes.h.

◆ GEN_PASS_DECL_STAGESPARSEOPERATIONS

#define GEN_PASS_DECL_STAGESPARSEOPERATIONS

Definition at line 20 of file Passes.h.

◆ GEN_PASS_DECL_STORAGESPECIFIERTOLLVM

#define GEN_PASS_DECL_STORAGESPECIFIERTOLLVM

Definition at line 21 of file Passes.h.

◆ GEN_PASS_REGISTRATION

#define GEN_PASS_REGISTRATION

Generate the code for registering passes.

Definition at line 296 of file Passes.h.

◆ GEN_PASS_REGISTRATION_LOWERFOREACHTOSCF

#define GEN_PASS_REGISTRATION_LOWERFOREACHTOSCF

Definition at line 1234 of file Passes.h.

◆ GEN_PASS_REGISTRATION_LOWERSPARSEITERATIONTOSCF

#define GEN_PASS_REGISTRATION_LOWERSPARSEITERATIONTOSCF

Definition at line 1235 of file Passes.h.

◆ GEN_PASS_REGISTRATION_LOWERSPARSEOPSTOFOREACH

#define GEN_PASS_REGISTRATION_LOWERSPARSEOPSTOFOREACH

Definition at line 1236 of file Passes.h.

◆ GEN_PASS_REGISTRATION_PRESPARSIFICATIONREWRITE

#define GEN_PASS_REGISTRATION_PRESPARSIFICATIONREWRITE

Definition at line 1237 of file Passes.h.

◆ GEN_PASS_REGISTRATION_SPARSEASSEMBLER

#define GEN_PASS_REGISTRATION_SPARSEASSEMBLER

Definition at line 1238 of file Passes.h.

◆ GEN_PASS_REGISTRATION_SPARSEBUFFERREWRITE

#define GEN_PASS_REGISTRATION_SPARSEBUFFERREWRITE

Definition at line 1239 of file Passes.h.

◆ GEN_PASS_REGISTRATION_SPARSEGPUCODEGEN

#define GEN_PASS_REGISTRATION_SPARSEGPUCODEGEN

Definition at line 1240 of file Passes.h.

◆ GEN_PASS_REGISTRATION_SPARSEREINTERPRETMAP

#define GEN_PASS_REGISTRATION_SPARSEREINTERPRETMAP

Definition at line 1241 of file Passes.h.

◆ GEN_PASS_REGISTRATION_SPARSESPACECOLLAPSE

#define GEN_PASS_REGISTRATION_SPARSESPACECOLLAPSE

Definition at line 1242 of file Passes.h.

◆ GEN_PASS_REGISTRATION_SPARSETENSORCODEGEN

#define GEN_PASS_REGISTRATION_SPARSETENSORCODEGEN

Definition at line 1243 of file Passes.h.

◆ GEN_PASS_REGISTRATION_SPARSETENSORCONVERSIONPASS

#define GEN_PASS_REGISTRATION_SPARSETENSORCONVERSIONPASS

Definition at line 1244 of file Passes.h.

◆ GEN_PASS_REGISTRATION_SPARSEVECTORIZATION

#define GEN_PASS_REGISTRATION_SPARSEVECTORIZATION

Definition at line 1245 of file Passes.h.

◆ GEN_PASS_REGISTRATION_SPARSIFICATIONANDBUFFERIZATION

#define GEN_PASS_REGISTRATION_SPARSIFICATIONANDBUFFERIZATION

Definition at line 1246 of file Passes.h.

◆ GEN_PASS_REGISTRATION_SPARSIFICATIONPASS

#define GEN_PASS_REGISTRATION_SPARSIFICATIONPASS

Definition at line 1247 of file Passes.h.

◆ GEN_PASS_REGISTRATION_STAGESPARSEOPERATIONS

#define GEN_PASS_REGISTRATION_STAGESPARSEOPERATIONS

Definition at line 1248 of file Passes.h.

◆ GEN_PASS_REGISTRATION_STORAGESPECIFIERTOLLVM

#define GEN_PASS_REGISTRATION_STORAGESPECIFIERTOLLVM

Definition at line 1249 of file Passes.h.