[all-commits] [llvm/llvm-project] 21debe: [mlir][Linalg] Generalize vector::transfer hoistin...

Nicolas Vasilache via All-commits all-commits at lists.llvm.org
Tue Feb 16 01:48:40 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 21debeae785dc4d7c9718fe5b46857a2c2ce6670
      https://github.com/llvm/llvm-project/commit/21debeae785dc4d7c9718fe5b46857a2c2ce6670
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2021-02-16 (Tue, 16 Feb 2021)

  Changed paths:
    M mlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp
    M mlir/test/Dialect/Linalg/hoisting.mlir

  Log Message:
  -----------
  [mlir][Linalg] Generalize vector::transfer hoisting on tensors.

This revision adds support for hoisting "subtensor + vector.transfer_read" / "subtensor_insert + vector.transfer_write pairs" across scf.for.
The unit of hoisting becomes a HoistableRead / HoistableWrite struct which contains a pair of "vector.transfer_read + optional subtensor" / "vector.transfer_write + optional subtensor_insert".
scf::ForOp canonicalization patterns are applied greedily on the successful application of the transformation to cleanup the IR more eagerly and potentially expose more transformation opportunities.

Differential revision: https://reviews.llvm.org/D96731




More information about the All-commits mailing list