Enable memref support paths for linalg.pack / linalg.unpack
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
[Recent change](https://github.com/llvm/llvm-project/commit/4b066c7fff3455dc547fabb676583391febe41e9) added memref semantics for linalg.pack/unpack, but many transforms still bail out with “TODO: Support Memref PackOp/UnPackOp. Temporarily return failure.” This leaves several lowering/transform paths disabled for memref usage.
TODOs:
- [ ] [PackAndUnpackPatterns.cpp](https://github.com/llvm/llvm-project/blob/4b066c7fff3455dc547fabb676583391febe41e9/mlir/lib/Dialect/Linalg/Transforms/PackAndUnpackPatterns.cpp) (multiple Pack/UnPack early returns)
- [ ] [TilingInterfaceImpl.cpp](https://github.com/llvm/llvm-project/blob/4b066c7fff3455dc547fabb676583391febe41e9/mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp) (Pack/UnPack tiling paths)
- [ ] [Transforms.cpp](https://github.com/llvm/llvm-project/blob/4b066c7fff3455dc547fabb676583391febe41e9/mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp) (lowerPack/lowerUnPack and related helpers)
- [ ] [Vectorization.cpp](https://github.com/llvm/llvm-project/blob/f5b62a78e8c7c542a3e25927948320c01a19ad19/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp) (Pack/UnPack vectorization)
- [ ] [LinalgOps.cpp](https://github.com/llvm/llvm-project/blob/4b066c7fff3455dc547fabb676583391febe41e9/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp) (canonicalization / fold patterns)
- [ ] [BlockPackMatmul.cpp](https://github.com/llvm/llvm-project/blob/4b066c7fff3455dc547fabb676583391febe41e9/mlir/lib/Dialect/Linalg/Transforms/BlockPackMatmul.cpp)
- [ ] Bufferization support
- https://github.com/llvm/llvm-project/pull/177982
Contributor guide
Assessment
This issue has not been assessed yet.