[Mlir-commits] [mlir] [mlir][linalg/scf/transform] scalable tiling and fusion for pack/unpack ops (PR #204007)
Andrzej WarzyĆski
llvmlistbot at llvm.org
Fri Jun 26 01:16:48 PDT 2026
================
@@ -432,6 +432,14 @@ def FuseOp : Op<Transform_Dialect, "structured.fuse",
If `apply_cleanup` is true then slice canonicalization is applied between
fusion steps. If `use_forall` is true then tiling method generates a
`scf.forall` loop instead of `scf.for` loops.
+
+ The optional `inner_tile_alignments` attribute forwards a per-dimension
+ `InnerTileAlignment` hint to the tiling driver for pack/unpack tiling.
+ Entries are indexed in iteration-domain order; an empty array (the default)
+ preserves the prior behavior and the hint is ignored by ops that do not
+ consume it. The hint is a caller assertion: for genuinely scalable/dynamic
+ sizes it cannot be verified, so an incorrect entry silently produces invalid
+ tiling -- the caller owns its correctness.
----------------
banach-space wrote:
IMO, this comment should refer to `linalg.pack` and `linalg.unpack` as the primary users of the attribute. It's not ideal that we are introducing something specific to particular ops, but at the same time we do want to make the meaning of this attribute clear to the users. And that's hard to convey if you don't refer to e.g. PackOp's inner tiles.
Also, remove double dash.
(you will want to update all comment in LinalgTransformsOps.td ;-) )
https://github.com/llvm/llvm-project/pull/204007
More information about the Mlir-commits
mailing list