[mlir] Add hoisting transformation for transfer ops on tensor
authorThomas Raoux <thomasraoux@google.com>
Tue, 5 Jan 2021 20:58:51 +0000 (12:58 -0800)
committerThomas Raoux <thomasraoux@google.com>
Wed, 6 Jan 2021 22:23:59 +0000 (14:23 -0800)
commitefd05040e13e942a4fbb79eb798fb9833e319b51
tree67e78fd4aae434b63625d7f02047fd4e275de208
parentc42cee0c64fe20235123ba44aac12d7e38117a7e
[mlir] Add hoisting transformation for transfer ops on tensor

Add same hoisting transformation existing for transfer ops on buffers for
transfer_ops on tensor. The logic is significantly different so this is done as
a separate transformation and it is expect that user would know which
transformation to use based on the flow.

Differential Revision: https://reviews.llvm.org/D94115
mlir/include/mlir/Dialect/Linalg/Transforms/Hoisting.h
mlir/include/mlir/Dialect/Vector/VectorUtils.h
mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp
mlir/lib/Dialect/Vector/VectorUtils.cpp
mlir/test/Dialect/Linalg/hoisting.mlir
mlir/test/lib/Transforms/TestLinalgHoisting.cpp