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.