[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