[mlir][Linalg] Move patterns to remove dead arguments and results out of canonicaliza...
authorMahesh Ravishankar <ravishankarm@google.com>
Wed, 16 Nov 2022 02:51:53 +0000 (02:51 +0000)
committerMahesh Ravishankar <ravishankarm@google.com>
Wed, 16 Nov 2022 16:00:43 +0000 (16:00 +0000)
commitda8a8e9280ec6fb5ef9f94cba53959192145d164
tree4ee3b9d586d7e0da305e3250fca8b21b1e4da983
parent8474a20b1f41c1576d8ec76040fb872b65b7db00
[mlir][Linalg] Move patterns to remove dead arguments and results out of canonicalization.

The patterns to remove dead arguments and results of `linalg.generic`
operations are not necessarily canonicalizations. Instead a new entry
point `populateEraseUnusedOperandsAndResults` is added to allow using
these patterns when needed. The transformations that rely on this
pattern for cleanup now include these patterns explicitly.

Differential Revision: https://reviews.llvm.org/D138085
12 files changed:
mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
mlir/lib/Dialect/Linalg/Transforms/DecomposeLinalgOps.cpp
mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
mlir/lib/Dialect/Linalg/Transforms/EraseUnusedOperandsAndResults.cpp [new file with mode: 0644]
mlir/test/Dialect/Linalg/canonicalize.mlir
mlir/test/Dialect/Linalg/decompose-ops.mlir
mlir/test/Dialect/Linalg/erase-unused-operands-and-results.mlir [moved from mlir/test/Dialect/Linalg/canonicalize-duplicate-inputs.mlir with 90% similarity]
mlir/test/Dialect/Linalg/fusion-elementwise-options.mlir
mlir/test/lib/Dialect/Linalg/TestLinalgDecomposeOps.cpp
mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp