[mlir][Linalg] Uniformize SplitReduction transforms and add option to use Bufferizati...
authorNicolas Vasilache <nicolas.vasilache@gmail.com>
Tue, 28 Jun 2022 12:17:32 +0000 (05:17 -0700)
committerNicolas Vasilache <nicolas.vasilache@gmail.com>
Thu, 30 Jun 2022 10:32:23 +0000 (03:32 -0700)
commit178f9bd63c9e0a207acc3ac2461ba53b99576e69
tree1ee8aeea16c39f4900b6bdffc9e893e11083f5da
parent7c4b90a98d3bcd54c21f5cac340c2310dbc37705
[mlir][Linalg] Uniformize SplitReduction transforms and add option to use Bufferization::AllocTensor

This revision merges the 2 split_reduction transforms and adds extra control by using attributes.

SplitReduction is known to require a concrete additional buffer to store tempoaray information.
Add an option to introduce a `bufferization.alloc_tensor` instead of `linalg.init_tensor`.
This behaves better with subset-based tiling and bufferization.

Differential Revision: https://reviews.llvm.org/D128722
mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
mlir/lib/Dialect/Linalg/Transforms/SplitReduction.cpp
mlir/test/Dialect/Linalg/transform-op-split-reduction-by-scaling.mlir
mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp