[Mlir-commits] [mlir] [mlir][TilingInterface] Allow controlling what fusion is done within tile and fuse (PR #76871)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Sat Jan 6 10:03:44 PST 2024
================
@@ -97,6 +97,30 @@ struct SCFTileAndFuseOptions {
tilingOptions = options;
return *this;
}
+
+ /// Control function to check if a slice needs to be fused or not,
+ /// The control function recieves
+ /// 1) the slice along which fusion is to be done,
+ /// 2) the producer value that is to be fused
+ /// 3) a boolean value set to `true` if the fusion is from
+ /// a destination operand.
+ /// It retuns two booleans
+ /// - returns `true` if the fusion should be done through the candidate slice
+ /// - returns `true` if a replacement for the fused producer needs to be
----------------
MaheshRavishankar wrote:
If it is `false` (which is the default) the producers just get fused into the tile loop nest. If you look at https://github.com/llvm/llvm-project/blob/main/mlir/test/Interfaces/TilingInterface/tile-fuse-and-yield-using-interface.mlir you will see an example where it is useful for this to be `true`.
https://github.com/llvm/llvm-project/pull/76871
More information about the Mlir-commits
mailing list