[all-commits] [llvm/llvm-project] 9db7d4: [mlir][TilingInterface] Add an option to tile and ...

MaheshRavishankar via All-commits all-commits at lists.llvm.org
Mon Jan 16 10:36:20 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9db7d4edd82ed5bb3867bbe6093ed2c63b18425a
      https://github.com/llvm/llvm-project/commit/9db7d4edd82ed5bb3867bbe6093ed2c63b18425a
  Author: Mahesh Ravishankar <ravishankarm at google.com>
  Date:   2023-01-16 (Mon, 16 Jan 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/SCF/Transforms/TileUsingInterface.h
    M mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
    A mlir/test/Interfaces/TilingInterface/tile-fuse-and-yield-using-interface.mlir
    M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterface.cpp

  Log Message:
  -----------
  [mlir][TilingInterface] Add an option to tile and fuse to yield replacement for the fused producer.

This patch adds an option to the method that fuses a producer with a
tiled consumer, to also yield from the tiled loops a value that can be
used to replace the original producer. This is only valid if it can be
assertained that the slice of the producer computed within each
iteration of the tiled loop nest does not compute slices of the
producer redundantly. The analysis to derive this is very involved. So
this is left to the caller to assertain.  A test is added that mimics
the `scf::tileConsumerAndFuseProducersGreedilyUsingSCFForOp`, but also
yields the values of all fused producers. This can be used as a
reference for how a caller could use this functionality.

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




More information about the All-commits mailing list