[mlir][tensor] Fold `tensor.cast` into `tensor.collapse_shape` op
authorGaurav Shukla <gaurav@nod-labs.com>
Thu, 28 Jul 2022 07:41:05 +0000 (13:11 +0530)
committerPrashant Kumar <prashant@nod-labs.com>
Thu, 28 Jul 2022 07:41:43 +0000 (13:11 +0530)
commit7d6ef5caef80a24d170dee0f1fec54f3bc7fd979
treee7e30de6ceb9babd1ffe872569e0b8bd39c20fb1
parent8a61749f767e9af773051fc4f6dc99276fe189e3
[mlir][tensor] Fold `tensor.cast` into `tensor.collapse_shape` op

This commit folds a `tensor.cast` op into a `tensor.collapse_shape` op
when following two conditions meet:
1. the `tensor.collapse_shape` op consumes result of the `tensor.cast` op.
2. `tensor.cast` op casts to a more dynamic version of the source tensor.
This is added as a canonicalization pattern in `tensor.collapse_shape` op.

Signed-Off-By: Gaurav Shukla <gaurav@nod-labs.com>
Reviewed By: mravishankar

Differential Revision: https://reviews.llvm.org/D130650
mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
mlir/test/Dialect/Tensor/canonicalize.mlir