[Mlir-commits] [mlir] [mlir][TilingInterface] Avoid looking at operands for getting slices to continue tile + fuse. (PR #107882)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Tue Sep 10 14:41:04 PDT 2024


================
@@ -120,16 +120,21 @@ struct LinalgOpTilingInterface
     Location loc = op->getLoc();
     LinalgOp linalgOp = cast<LinalgOp>(op);
     SmallVector<Value> valuesToTile = linalgOp->getOperands();
-    SmallVector<Value, 4> tiledOperands = makeTiledShapes(
+    SmallVector<Value> tiledOperands = makeTiledShapes(
         b, loc, linalgOp, valuesToTile, offsets, sizes, {}, true);
+    SmallVector<Operation *> generatedSlices = llvm::map_to_vector(
+        llvm::make_filter_range(
+            tiledOperands, [](Value v) -> bool { return v.getDefiningOp(); }),
+        [](Value v) -> Operation * { return v.getDefiningOp(); });
----------------
MaheshRavishankar wrote:

This could be a `memref.subview` as well. I left the fusion implementation to account for what kind of operation it can index on. Ill leave it as is for now, but we can come back and revisit.

EDIT: Actually fixed it to return filter out extract slices and subview operations.

https://github.com/llvm/llvm-project/pull/107882


More information about the Mlir-commits mailing list