Skip to content

Commit 781eabe

Browse files
author
Peiming Liu
committed
[mlir][sparse] refactoring loop emitter into its own files.
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D140701
1 parent 431f6a5 commit 781eabe

File tree

10 files changed

+996
-953
lines changed

10 files changed

+996
-953
lines changed

mlir/lib/Dialect/SparseTensor/Transforms/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ add_mlir_dialect_library(MLIRSparseTensorTransforms
22
BufferizableOpInterfaceImpl.cpp
33
CodegenEnv.cpp
44
CodegenUtils.cpp
5+
LoopEmitter.cpp
56
SparseBufferRewriting.cpp
67
SparseStorageSpecifierToLLVM.cpp
78
SparseTensorCodegen.cpp

mlir/lib/Dialect/SparseTensor/Transforms/CodegenEnv.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ CodegenEnv::CodegenEnv(linalg::GenericOp linop, SparsificationOptions opts,
2424
expFilled(), expAdded(), expCount(), redVal(), redExp(-1u),
2525
redCustom(-1u) {}
2626

27-
void CodegenEnv::startEmit(OpOperand *so, unsigned lv,
28-
SparseTensorLoopEmitter *le) {
27+
void CodegenEnv::startEmit(OpOperand *so, unsigned lv, LoopEmitter *le) {
2928
assert(sparseOut == nullptr && loopEmitter == nullptr &&
3029
insChain == nullptr && "must only start emitting once");
3130
sparseOut = so;

mlir/lib/Dialect/SparseTensor/Transforms/CodegenEnv.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#define MLIR_DIALECT_SPARSETENSOR_TRANSFORMS_CODEGENENV_H_
1515

1616
#include "CodegenUtils.h"
17+
#include "LoopEmitter.h"
1718

1819
#include "mlir/Dialect/Linalg/IR/Linalg.h"
1920
#include "mlir/Dialect/SparseTensor/IR/SparseTensor.h"
@@ -45,9 +46,9 @@ class CodegenEnv {
4546
linalg::GenericOp op() const { return linalgOp; }
4647
const SparsificationOptions &options() const { return sparseOptions; }
4748
Merger &merger() { return latticeMerger; }
48-
SparseTensorLoopEmitter *emitter() { return loopEmitter; }
49+
LoopEmitter *emitter() { return loopEmitter; }
4950

50-
void startEmit(OpOperand *so, unsigned lv, SparseTensorLoopEmitter *le);
51+
void startEmit(OpOperand *so, unsigned lv, LoopEmitter *le);
5152

5253
/// Generates loop boundary statements (entering/exiting loops). The function
5354
/// passes and updates the passed-in parameters.
@@ -135,7 +136,7 @@ class CodegenEnv {
135136

136137
// Loop emitter helper class (keep reference in scope!).
137138
// TODO: move emitter constructor up in time?
138-
SparseTensorLoopEmitter *loopEmitter;
139+
LoopEmitter *loopEmitter;
139140

140141
// Topological sort.
141142
std::vector<unsigned> topSort;

0 commit comments

Comments
 (0)