[mlir][Vector][Transforms] Improve the control over individual vector lowerings and...
authorNicolas Vasilache <nicolas.vasilache@gmail.com>
Fri, 24 Mar 2023 12:09:50 +0000 (12:09 +0000)
committerAlex Zinenko <zinenko@google.com>
Fri, 24 Mar 2023 14:01:39 +0000 (14:01 +0000)
commit8b513407407d00dd8eafa1f6c6f37bf715b4c7e8
treee1800bdb01625441da11dd25dd2c60b563ddf274
parent11313108ff778ab6037dcf3d6057de6e1d26fb80
[mlir][Vector][Transforms] Improve the control over individual vector lowerings and transforms

This revision adds vector transform operations that allow us to better inspect the composition
of various lowerings that were previously very opaque.

This commit is NFC in that it does not change patterns beyond adding `rewriter.notifyFailure` messages
and it does not change the tests beyond breaking them into pieces and using transforms instead of
throwaway opaque test passes.

Reviewed By: ftynse, springerm

Co-authored-by: Alex Zinenko <zinenko@google.com>
Differential Revision: https://reviews.llvm.org/D146755
31 files changed:
mlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.h
mlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.td
mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td
mlir/include/mlir/Dialect/Vector/Transforms/LoweringPatterns.h
mlir/lib/Dialect/Transform/IR/CMakeLists.txt
mlir/lib/Dialect/Transform/IR/TransformInterfaces.cpp
mlir/lib/Dialect/Vector/TransformOps/CMakeLists.txt
mlir/lib/Dialect/Vector/TransformOps/VectorTransformOps.cpp
mlir/lib/Dialect/Vector/Transforms/LowerVectorContract.cpp
mlir/lib/Dialect/Vector/Transforms/LowerVectorTransfer.cpp
mlir/test/Dialect/LLVM/transform-e2e.mlir
mlir/test/Dialect/Vector/transform-vector.mlir
mlir/test/Dialect/Vector/vector-broadcast-lowering-transforms.mlir [new file with mode: 0644]
mlir/test/Dialect/Vector/vector-contract-matvec-transforms.mlir
mlir/test/Dialect/Vector/vector-contract-to-dot-transforms.mlir [new file with mode: 0644]
mlir/test/Dialect/Vector/vector-contract-to-matrix-intrinsics-transforms.mlir [new file with mode: 0644]
mlir/test/Dialect/Vector/vector-contract-to-outerproduct-transforms.mlir [new file with mode: 0644]
mlir/test/Dialect/Vector/vector-contract-to-parallel-arith-transforms.mlir [new file with mode: 0644]
mlir/test/Dialect/Vector/vector-contract-transforms.mlir [deleted file]
mlir/test/Dialect/Vector/vector-mask-lowering-transforms.mlir [new file with mode: 0644]
mlir/test/Dialect/Vector/vector-multi-reduction-lowering.mlir
mlir/test/Dialect/Vector/vector-multi-reduction-outer-lowering.mlir
mlir/test/Dialect/Vector/vector-outerproduct-lowering-transforms.mlir [new file with mode: 0644]
mlir/test/Dialect/Vector/vector-shape-cast-lowering-transforms.mlir [new file with mode: 0644]
mlir/test/Dialect/Vector/vector-transfer-drop-unit-dims-patterns.mlir
mlir/test/Dialect/Vector/vector-transfer-full-partial-split-copy-transform.mlir [new file with mode: 0644]
mlir/test/Dialect/Vector/vector-transfer-full-partial-split.mlir
mlir/test/Dialect/Vector/vector-transfer-to-vector-load-store.mlir
mlir/test/Dialect/Vector/vector-transpose-lowering.mlir
mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
utils/bazel/llvm-project-overlay/mlir/BUILD.bazel