[all-commits] [llvm/llvm-project] 311dd5: [mlir][MemRef] Fix SubViewOp canonicalization when...

Nicolas Vasilache via All-commits all-commits at lists.llvm.org
Tue Nov 30 12:38:41 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 311dd55c9eb9342b1c889f6db7728f15b05378bb
      https://github.com/llvm/llvm-project/commit/311dd55c9eb9342b1c889f6db7728f15b05378bb
  Author: MaheshRavishankar <ravishankarm at google.com>
  Date:   2021-11-30 (Tue, 30 Nov 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/StandardOps/Utils/Utils.h
    M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
    M mlir/test/Dialect/MemRef/canonicalize.mlir

  Log Message:
  -----------
  [mlir][MemRef] Fix SubViewOp canonicalization when a subset of unit-dims are dropped.

The canonical type of the result of the `memref.subview` needs to make
sure that the previously dropped unit-dimensions are the ones dropped
for the canonicalized type as well. This means the generic
`inferRankReducedResultType` cannot be used. Instead the current
dropped dimensions need to be querried and the same need to be dropped.

Reviewed By: nicolasvasilache, ThomasRaoux

Differential Revision: https://reviews.llvm.org/D114751


  Commit: a08b750ce9df2bf1cf9270d83c50de68eeb8b6f5
      https://github.com/llvm/llvm-project/commit/a08b750ce9df2bf1cf9270d83c50de68eeb8b6f5
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2021-11-30 (Tue, 30 Nov 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td
    M mlir/include/mlir/Dialect/Utils/StaticValueUtils.h
    M mlir/include/mlir/IR/BuiltinTypes.h
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/lib/Dialect/Utils/StaticValueUtils.cpp
    M mlir/lib/IR/BuiltinTypes.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
    M mlir/test/Dialect/Linalg/comprehensive-module-bufferize-analysis.mlir
    M mlir/test/Dialect/Linalg/roundtrip.mlir
    M mlir/test/Dialect/MemRef/invalid.mlir
    M mlir/test/Dialect/SCF/for-loop-canonicalization.mlir
    M mlir/test/Dialect/Tensor/canonicalize.mlir
    M mlir/test/Dialect/Tensor/invalid.mlir
    M mlir/test/Dialect/Tensor/ops.mlir
    M mlir/test/IR/core-ops.mlir

  Log Message:
  -----------
  [mlir][tensor] InsertSliceOp verification.

This revision reintroduces tensor.insert_slice verification which seems
to have vanished over time: a verifier was initially introduced in cf9503c1b752062d9abfb2c7922a50574d9c5de4
but for some reason the invalid.mlir was not properly updated; as time passed the verifier was not called anymore and later the code was deleted.

As a consequence, a non-negligible portion of tests has run astray using invalid
tensor.insert_slice semantics and needed to be fixed.

Also, extract isRankReducedType from TensorOps for better reuse
Originally, this facility was used by both tensor and memref forms but
it got copied around as dialects were split.

Differential Revision: https://reviews.llvm.org/D114715


Compare: https://github.com/llvm/llvm-project/compare/18308e171b5b...a08b750ce9df


More information about the All-commits mailing list