[mlir][Linalg] Refactor HoistPadding and add support for hoisting in the absence...
authorNicolas Vasilache <nicolas.vasilache@gmail.com>
Mon, 27 Feb 2023 09:28:56 +0000 (01:28 -0800)
committerNicolas Vasilache <nicolas.vasilache@gmail.com>
Tue, 28 Feb 2023 13:21:57 +0000 (05:21 -0800)
commit2f07d627a16e983c9381bebfc566dd3f35a38470
tree8ce9e9193b8a6bc43c5f0b6d0ff1168ce892a93e
parent4bc254c66442ce64075eb257105fb89e53e8a89f
[mlir][Linalg] Refactor HoistPadding and add support for hoisting in the absence of packing loops.

This revision cleans up the implementation of hoist padding and extends it to also work in the
absence of packing loops.
This allows better composition when hoisting the padded result of a DPS operation.

A systematic usage of RewriterBase is applied to the implementation.

Depends on: D144856

Differential Revision: https://reviews.llvm.org/D144855
mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
mlir/include/mlir/Dialect/Tensor/Utils/Utils.h
mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
mlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp
mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
mlir/lib/Dialect/Tensor/Utils/Utils.cpp
mlir/test/Dialect/Linalg/transform-op-hoist-pad.mlir
utils/bazel/llvm-project-overlay/mlir/BUILD.bazel