[all-commits] [llvm/llvm-project] 86f186: [mlir][linalg] Add makeComposedPadHighOp.

Tobias Gysi via All-commits all-commits at lists.llvm.org
Wed Nov 24 11:19:53 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 86f186efea7b5f542ef3d9fa2e63fd485475e011
      https://github.com/llvm/llvm-project/commit/86f186efea7b5f542ef3d9fa2e63fd485475e011
  Author: Tobias Gysi <gysit at google.com>
  Date:   2021-11-24 (Wed, 24 Nov 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
    M mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
    M mlir/lib/Dialect/Linalg/Utils/Utils.cpp
    M mlir/test/Dialect/Linalg/pad.mlir

  Log Message:
  -----------
  [mlir][linalg] Add makeComposedPadHighOp.

Add the makeComposedPadHighOp method which creates a new PadTensorOp if necessary. If the source to pad is actually the result of a sequence of padded LinalgOps, the method checks if padding is needed or if we can use the padded result of the padded LinalgOp sequence directly.

Example:
```
%0 = tensor.extract_slice %arg0 [%iv0, %iv1] [%sz0, %sz1]
%1 = linalg.pad_tensor %0 low[0, 0] high[...] { linalg.yield %cst }
%2 = linalg.matmul ins(...) outs(%1)
%3 = tensor.extract_slice %2 [0, 0] [%sz0, %sz1]
```
when padding %3 return %2 instead of introducing
```
%4 = linalg.pad_tensor %3 low[0, 0] high[...] { linalg.yield %cst }
```

Depends On D114161

Reviewed By: nicolasvasilache, pifon2a

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




More information about the All-commits mailing list