[all-commits] [llvm/llvm-project] 7ee345: [mlir][TilingInterface] Fix `iter_args` handling i...

MaheshRavishankar via All-commits all-commits at lists.llvm.org
Mon Sep 26 12:15:02 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7ee34550f5495479428098256d0685c498036ec2
      https://github.com/llvm/llvm-project/commit/7ee34550f5495479428098256d0685c498036ec2
  Author: Mahesh Ravishankar <ravishankarm at google.com>
  Date:   2022-09-26 (Mon, 26 Sep 2022)

  Changed paths:
    M mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
    M mlir/include/mlir/Dialect/SCF/Utils/Utils.h
    M mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
    M mlir/lib/Dialect/SCF/Utils/Utils.cpp
    M mlir/test/Interfaces/TilingInterface/tile-and-fuse-using-interface.mlir

  Log Message:
  -----------
  [mlir][TilingInterface] Fix `iter_args` handling in tile (and fuse).

The current approach for handling `iter_args` was to replace all uses
of the value that is used as `init` value with the corresponding
region block argument within the `scf.for`. This is not always
correct. Instead a more deliberate approach needs to be taken to
handle these. If the slice being fused represents a slice of the
destination operand of the untiled op, then
- Make the destination of the fused producer the `init` value of the
  loop nest
- For the tiled and fused producer op created, replace the slice of
  the destination operand with a slice of the corresponding region
  iter arg of the innermost loop of the generated loop nest

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




More information about the All-commits mailing list