[Mlir-commits] [mlir] 1c27899 - [mlir][SCF] Pass result of getAsOpFoldResult to getBoundedTileSize.
Adrian Kuegel
llvmlistbot at llvm.org
Fri Oct 20 03:26:04 PDT 2023
Author: Adrian Kuegel
Date: 2023-10-20T10:25:32Z
New Revision: 1c27899e24381a0231003b1aae9c436e78174109
URL: https://github.com/llvm/llvm-project/commit/1c27899e24381a0231003b1aae9c436e78174109
DIFF: https://github.com/llvm/llvm-project/commit/1c27899e24381a0231003b1aae9c436e78174109.diff
LOG: [mlir][SCF] Pass result of getAsOpFoldResult to getBoundedTileSize.
A recent change modified the parameter tileSize from Value to
OpFoldResult. Therefore we should call getAsOpFoldResult before passing
on the tileSize.
Adjust a test regarding this new behavior.
Added:
Modified:
mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
mlir/test/Dialect/Tensor/tiling.mlir
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp b/mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
index 2c6e66de6dc60f4..2bddb498c21ac33 100644
--- a/mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
+++ b/mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
@@ -172,8 +172,9 @@ static SmallVector<scf::ForOp> generateTileLoopNest(
loc, offset, size, tileSize, ValueRange{},
[&](OpBuilder &bodyBuilder, Location bodyLoc, Value iv,
ValueRange /*iterArgs*/) {
- sizes[loopRange.index()] = getBoundedTileSize(
- bodyBuilder, bodyLoc, loopRange.value(), iv, tileSize);
+ sizes[loopRange.index()] =
+ getBoundedTileSize(bodyBuilder, bodyLoc, loopRange.value(), iv,
+ getAsOpFoldResult(tileSize));
builder.create<scf::YieldOp>(loc);
});
offsets[loopRange.index()] = loop.getInductionVar();
diff --git a/mlir/test/Dialect/Tensor/tiling.mlir b/mlir/test/Dialect/Tensor/tiling.mlir
index 63f885c610bfcf8..556718785f93a82 100644
--- a/mlir/test/Dialect/Tensor/tiling.mlir
+++ b/mlir/test/Dialect/Tensor/tiling.mlir
@@ -150,14 +150,14 @@ transform.sequence failures(propagate) {
// CHECK: %[[RESULT:.*]] = scf.for %[[IV:.*]] = %[[C0]] to %[[C15]] step %[[C3]] iter_args(%[[INNER_OUT:.*]] =
// CHECK: %[[R2:.*]] = scf.if
// CHECK: %[[GEN:.*]] = tensor.generate
-// CHECK: %[[cast_0:.*]] = tensor.cast %[[GEN]] : tensor<14x3xf32> to tensor<?x?xf32>
-// CHECK: scf.yield %[[cast_0]] : tensor<?x?xf32>
+// CHECK: %[[cast_0:.*]] = tensor.cast %[[GEN]] : tensor<14x3xf32> to tensor<?x3xf32>
+// CHECK: scf.yield %[[cast_0]] : tensor<?x3xf32>
// CHECK: else
// CHECK: %[[SLICE:.*]] = tensor.extract_slice %arg0[0, %{{.*}}] [7, %{{.*}}] [1, 1] : tensor<7x9xf32> to tensor<7x?xf32>
// CHECK: %[[PAD:.*]] = tensor.pad %[[SLICE]] low[0, 0] high[7, %{{.*}}]
-// CHECK: %[[cast_1:.*]] = tensor.cast %[[PAD]] : tensor<14x?xf32> to tensor<?x?xf32>
-// CHECK: scf.yield %[[cast_1]] : tensor<?x?xf32>
-// CHECK: %[[cast:.*]] = tensor.cast %[[R2]] : tensor<?x?xf32> to tensor<14x3xf32>
+// CHECK: %[[cast_1:.*]] = tensor.cast %[[PAD]] : tensor<14x?xf32> to tensor<?x3xf32>
+// CHECK: scf.yield %[[cast_1]] : tensor<?x3xf32>
+// CHECK: %[[cast:.*]] = tensor.cast %[[R2]] : tensor<?x3xf32> to tensor<14x3xf32>
// CHECK: %[[R3:.*]] = tensor.insert_slice %[[cast]] into %[[INNER_OUT]][0, %[[IV]]] [14, 3] [1, 1] : tensor<14x3xf32> into tensor<14x15xf32>
// CHECK: scf.yield %[[R3]] : tensor<14x15xf32>
// CHECK: return %[[RESULT]] : tensor<14x15xf32>
More information about the Mlir-commits
mailing list