[Mlir-commits] [mlir] [NFC][mlir][sparse] remove redundant parameter. (PR #75551)
Peiming Liu
llvmlistbot at llvm.org
Thu Dec 14 16:51:00 PST 2023
https://github.com/PeimingLiu updated https://github.com/llvm/llvm-project/pull/75551
>From 0446f797a8c1d950810484e5ea7d103c789c9260 Mon Sep 17 00:00:00 2001
From: Peiming Liu <peiming at google.com>
Date: Fri, 15 Dec 2023 00:46:47 +0000
Subject: [PATCH 1/2] [NFC][mlir][sparse] remove redundant parameter.
---
.../Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp | 4 ++--
.../Dialect/SparseTensor/Transforms/Utils/CodegenUtils.cpp | 5 +++--
.../Dialect/SparseTensor/Transforms/Utils/CodegenUtils.h | 2 +-
.../Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp | 6 ++----
4 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp
index 477ff2e1c9237e..30ab2a1f18e3f7 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp
@@ -476,7 +476,7 @@ static Value genFirstPosOrCrds(OpBuilder &builder, Location loc, Value a,
if (format == CuSparseFormat::kCOO) {
// Library uses SoA COO, direct IR uses AoS COO.
if (enableRT)
- return genToCoordinates(builder, loc, a, 0, /*cooStart=*/0);
+ return genToCoordinates(builder, loc, a, 0);
return genToCoordinatesBuffer(builder, loc, a);
}
// Formats CSR/CSC and BSR use positions at 1.
@@ -490,7 +490,7 @@ static Value genSecondCrds(OpBuilder &builder, Location loc, Value a,
if (isCOO && !enableRT)
return Value(); // nothing needed
// Formats CSR/CSC and BSR use coordinates at 1.
- return genToCoordinates(builder, loc, a, 1, /*cooStart=*/isCOO ? 0 : 2);
+ return genToCoordinates(builder, loc, a, 1);
}
/// Generates the sparse matrix handle.
diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.cpp
index 33d449aac5a355..75a43891491879 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.cpp
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.cpp
@@ -564,10 +564,11 @@ Value sparse_tensor::genToPositions(OpBuilder &builder, Location loc,
}
Value sparse_tensor::genToCoordinates(OpBuilder &builder, Location loc,
- Value tensor, Level lvl, Level cooStart) {
+ Value tensor, Level lvl) {
const auto srcTp = getSparseTensorType(tensor);
const Type crdTp = srcTp.getCrdType();
- const Type memTp = get1DMemRefType(crdTp, /*withLayout=*/lvl >= cooStart);
+ const Type memTp =
+ get1DMemRefType(crdTp, /*withLayout=*/lvl >= srcTp.getCOOStart());
return builder.create<ToCoordinatesOp>(loc, memTp, tensor,
builder.getIndexAttr(lvl));
}
diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.h b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.h
index 8dc57e1b5479bf..8d54b5959d8712 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.h
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/CodegenUtils.h
@@ -289,7 +289,7 @@ Value genToPositions(OpBuilder &builder, Location loc, Value tensor, Level lvl);
/// stride and offset. Otherwise, the result type is a memref without
/// any specified layout.
Value genToCoordinates(OpBuilder &builder, Location loc, Value tensor,
- Level lvl, Level cooStart);
+ Level lvl);
/// Infers the result type and generates `ToCoordinatesBufferOp`.
Value genToCoordinatesBuffer(OpBuilder &builder, Location loc, Value tensor);
diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
index 08d37b6a9656fe..8c0060a85bca2e 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
@@ -457,12 +457,10 @@ void LoopEmitter::initializeLoopEmit(
if (isCompressedLT(lvlTp) || isLooseCompressedLT(lvlTp)) {
// Generate sparse primitives to obtain positions and coordinates.
positionsBuffers[t][l] = genToPositions(builder, loc, tensor, l);
- coordinatesBuffers[t][l] =
- genToCoordinates(builder, loc, tensor, l, cooStart);
+ coordinatesBuffers[t][l] = genToCoordinates(builder, loc, tensor, l);
} else if (isSingletonLT(lvlTp) || is2OutOf4LT(lvlTp)) {
// Singleton level, fetch coordinates.
- coordinatesBuffers[t][l] =
- genToCoordinates(builder, loc, tensor, l, cooStart);
+ coordinatesBuffers[t][l] = genToCoordinates(builder, loc, tensor, l);
} else {
// Dense level, nothing to fetch.
assert(isDenseLT(lvlTp));
>From 7f05483dae2d1d42318870ea65ee31e8d002cd23 Mon Sep 17 00:00:00 2001
From: Peiming Liu <peiming at google.com>
Date: Fri, 15 Dec 2023 00:50:48 +0000
Subject: [PATCH 2/2] remove unused variables
---
mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
index 8c0060a85bca2e..784c793c9bd119 100644
--- a/mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
+++ b/mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
@@ -437,7 +437,6 @@ void LoopEmitter::initializeLoopEmit(
auto stt = getSparseTensorType(tensor);
const Level lvlRank = stt.getLvlRank();
const auto shape = rtp.getShape();
- const Level cooStart = stt.getCOOStart();
SmallVector<Value> lvlSzs;
for (Level l = 0; l < stt.getLvlRank(); l++) {
More information about the Mlir-commits
mailing list