diff --git a/mlir/include/mlir/Interfaces/TilingInterface.td b/mlir/include/mlir/Interfaces/TilingInterface.td --- a/mlir/include/mlir/Interfaces/TilingInterface.td +++ b/mlir/include/mlir/Interfaces/TilingInterface.td @@ -72,10 +72,6 @@ `getIterationDomain`. The caller provides the information of the tile within this iteration space whose implementation the caller needs. - - `dest` are the Value into which the result of the tiled - operation is to be inserted into. The type of the `dest` - Values is same as the types returned by - `getDestinationOperands` method. - `offsets` provides the offset of the tile in the coordinate system of the original iteration space, i.e., if an iteration space dimension had non-zero offset, it must be included in the offset @@ -93,7 +89,6 @@ /*methodName=*/"getTiledImplementation", /*args=*/(ins "OpBuilder &":$b, - "ValueRange ":$dest, "ArrayRef ":$offsets, "ArrayRef ":$sizes, "bool ":$tileDestOperands), diff --git a/mlir/lib/Dialect/Linalg/Transforms/Split.cpp b/mlir/lib/Dialect/Linalg/Transforms/Split.cpp --- a/mlir/lib/Dialect/Linalg/Transforms/Split.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Split.cpp @@ -42,7 +42,7 @@ // Create the part as it it were a single tile. SmallVector tiled = - op.getTiledImplementation(b, resultOperands, offsetsCopy, sizesCopy, + op.getTiledImplementation(b, offsetsCopy, sizesCopy, /*tileDestOperands=*/true); assert(tiled.size() == 1 && "expected a single result from tiling"); auto part = cast(tiled.front()); diff --git a/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp b/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp --- a/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp @@ -314,7 +314,7 @@ } SmallVector tiledOps = - op.getTiledImplementation(b, destOperands, tiledOffsets, tiledSizes, + op.getTiledImplementation(b, tiledOffsets, tiledSizes, /*tileDestOperands=*/true); assert(tiledOps.size() == 1 && "expected a single produced tiled op"); tiledOp = tiledOps.front(); diff --git a/mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp b/mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp --- a/mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp @@ -117,11 +117,9 @@ } // Instantiate the tiled implementation of the operation. - SmallVector - getTiledImplementation(Operation *op, OpBuilder &b, ValueRange dest, - ArrayRef offsets, - ArrayRef sizes, - bool tileDestOperands) const { + SmallVector getTiledImplementation( + Operation *op, OpBuilder &b, ArrayRef offsets, + ArrayRef sizes, bool tileDestOperands) const { // Leave the `sizeBounds` value empty. That is only needed when the `sizes` // specified could lead to out of bounds accesses. Location loc = op->getLoc(); @@ -210,7 +208,7 @@ } SmallVector tiledOp = tilingInterfaceOp.getTiledImplementation( - b, dest, iterationTileOffsets, iterationTileSizes, tileDestOperands); + b, iterationTileOffsets, iterationTileSizes, tileDestOperands); if (tiledOp.size() != 1) return op->emitOpError("failed to generate tiled implementation"); diff --git a/mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp b/mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp --- a/mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp +++ b/mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp @@ -257,8 +257,8 @@ if (!tilingResult.loops.empty()) rewriter.setInsertionPoint( tilingResult.loops.back().getBody()->getTerminator()); - SmallVector tiledImplementation = op.getTiledImplementation( - rewriter, op.getDestinationOperands(rewriter), offsets, sizes, true); + SmallVector tiledImplementation = + op.getTiledImplementation(rewriter, offsets, sizes, true); if (tiledImplementation.size() != 1) { return rewriter.notifyMatchFailure( op, "expected tiled implementation to return a single op"); diff --git a/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp b/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp --- a/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp +++ b/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp @@ -60,11 +60,9 @@ return loopRanges; } - SmallVector - getTiledImplementation(Operation *op, OpBuilder &b, ValueRange dest, - ArrayRef offsets, - ArrayRef sizes, - bool /*tileDestOperands*/) const { + SmallVector getTiledImplementation( + Operation *op, OpBuilder &b, ArrayRef offsets, + ArrayRef sizes, bool /*tileDestOperands*/) const { Operation *result = tensor::bubbleUpPadSlice(b, cast(op), offsets, sizes); if (!result)