[all-commits] [llvm/llvm-project] 2164a4: [mlir][Transforms] Add loop-invariant subset hoist...
Matthias Springer via All-commits
all-commits at lists.llvm.org
Tue Oct 31 18:57:31 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 2164a449dc7a9daf610b789ba0ec7d1eca7305ef
https://github.com/llvm/llvm-project/commit/2164a449dc7a9daf610b789ba0ec7d1eca7305ef
Author: Matthias Springer <me at m-sp.org>
Date: 2023-11-01 (Wed, 01 Nov 2023)
Changed paths:
M mlir/include/mlir/Transforms/LoopInvariantCodeMotionUtils.h
M mlir/include/mlir/Transforms/Passes.h
M mlir/include/mlir/Transforms/Passes.td
M mlir/lib/Transforms/LoopInvariantCodeMotion.cpp
M mlir/lib/Transforms/Utils/CMakeLists.txt
M mlir/lib/Transforms/Utils/LoopInvariantCodeMotionUtils.cpp
A mlir/test/Transforms/loop-invariant-subset-hoisting.mlir
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[mlir][Transforms] Add loop-invariant subset hoisting (LISH) transformation (#70619)
Add a loop-invariant subset hoisting pass to `mlir/Interfaces`. This
pass hoist loop-invariant tensor subsets (subset extraction and subset
insertion ops) from loop-like ops. Extraction ops are moved before the
loop. Insertion ops are moved after the loop. The loop body operates on
newly added region iter_args (one per extraction-insertion pair).
This new pass will be improved in subsequent commits (to support more
cases/ops) and will eventually replace
`Linalg/Transforms/SubsetHoisting.cpp`. In contrast to the existing
Linalg subset hoisting, the new pass is op interface-based
(`SubsetOpInterface` and `LoopLikeOpInterface`).
More information about the All-commits
mailing list