[mlir] add pad_tensor(tensor.cast) -> pad_tensor canonicalizer
authorAlex Zinenko <zinenko@google.com>
Thu, 23 Sep 2021 16:37:28 +0000 (18:37 +0200)
committerAlex Zinenko <zinenko@google.com>
Fri, 24 Sep 2021 10:03:47 +0000 (12:03 +0200)
commit3f89e339bb185726a2a3eb127ac59c813b52c6fe
treea906b706a9f3d3bd543078455f240b831ff0d0fe
parent751be2a064f119af74c7b9b1e52bc904d8aa114d
[mlir] add pad_tensor(tensor.cast) -> pad_tensor canonicalizer

This canonicalization pattern complements the tensor.cast(pad_tensor) one in
propagating constant type information when possible. It contributes to the
feasibility of pad hoisting.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D110343
mlir/include/mlir/Dialect/Tensor/IR/Tensor.h
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
mlir/test/Dialect/Linalg/canonicalize.mlir
mlir/test/Dialect/Linalg/subtensor-of-padtensor.mlir
mlir/test/Dialect/Linalg/tile-and-fuse-tensors.mlir
mlir/test/Dialect/Linalg/tile-pad-tensor-op.mlir