llvm / llvm/llvm-project

Enable memref support paths for linalg.pack / linalg.unpack

Open
#177,987 2 comments 0 reactions 1 assignee Claimed by @sakupan102 View on GitHub
mlir:linalg
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.