[all-commits] [llvm/llvm-project] cf6a7c: [mlir][TilingInterface] Add pattern to tile using ...

MaheshRavishankar via All-commits all-commits at lists.llvm.org
Mon Jun 13 13:38:08 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cf6a7c1947931df20cf294213c8edf2d8c0490f6
      https://github.com/llvm/llvm-project/commit/cf6a7c1947931df20cf294213c8edf2d8c0490f6
  Author: Mahesh Ravishankar <ravishankarm at google.com>
  Date:   2022-06-13 (Mon, 13 Jun 2022)

  Changed paths:
    A mlir/include/mlir/Dialect/Linalg/Transforms/TilingInterfaceImpl.h
    M mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
    A mlir/include/mlir/Dialect/SCF/TileUsingInterface.h
    M mlir/include/mlir/Dialect/SCF/Utils/Utils.h
    M mlir/include/mlir/Interfaces/TilingInterface.td
    M mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
    A mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp
    M mlir/lib/Dialect/Linalg/Utils/Utils.cpp
    M mlir/lib/Dialect/SCF/Transforms/CMakeLists.txt
    A mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
    M mlir/lib/Dialect/SCF/Utils/Utils.cpp
    A mlir/test/Interfaces/TilingInterface/tile-using-interface.mlir
    M mlir/test/lib/CMakeLists.txt
    A mlir/test/lib/Interfaces/CMakeLists.txt
    A mlir/test/lib/Interfaces/TilingInterface/CMakeLists.txt
    A mlir/test/lib/Interfaces/TilingInterface/TestTilingInterface.cpp
    M mlir/tools/mlir-opt/CMakeLists.txt
    M mlir/tools/mlir-opt/mlir-opt.cpp
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel

  Log Message:
  -----------
  [mlir][TilingInterface] Add pattern to tile using TilingInterface and implement TilingInterface for Linalg ops.

This patch adds support for tiling operations that implement the
TilingInterface.
- It separates the loop constructs that are used to iterate over tile
  from the implementation of the tiling itself. For example, the use
  of destructive updates is more related to use of scf.for for
  iterating over tiles that are tensors.
- To test the transformation, TilingInterface is implemented for
  LinalgOps. The separation of the looping constructs used from the
  implementation of tile code generation greatly simplifies the
  latter.
- The implementation of TilingInterface for LinalgOp is kept as an
  external model for now till this approach can be fully flushed out
  to replace the existing tiling + fusion approaches in Linalg.

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




More information about the All-commits mailing list