[all-commits] [llvm/llvm-project] b4563e: [mlir][linalg] Enable propagation of pack/unpack o...

Quinn Dawkins via All-commits all-commits at lists.llvm.org
Tue Apr 11 09:04:34 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b4563ee17ce45728a323c2708e549627b0a8ee9c
      https://github.com/llvm/llvm-project/commit/b4563ee17ce45728a323c2708e549627b0a8ee9c
  Author: Quinn Dawkins <quinn at nod-labs.com>
  Date:   2023-04-11 (Tue, 11 Apr 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td
    M mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/test/Dialect/Linalg/data-layout-propagation.mlir
    M mlir/test/lib/Dialect/Linalg/TestDataLayoutPropagation.cpp

  Log Message:
  -----------
  [mlir][linalg] Enable propagation of pack/unpack ops through non-elementwise

Allows pack propagation through non-elementwise generics as long as all
tiled dimensions have parallel iterator types and are only indexed with
affine dim expressions by any of the operands.

This enables unpack propagation cases where the result type is different
from the current unpack destination tensor and thus motivates a similar
helper as the for pack for creating a destination tensor based on
pack information.

Outer dim permutations are allowed to permute reduction dims, however
remains unsupported for non-affine dim indexing map results.
Additionally ops with gather semantics now explicitly prohibit propagation.

Pack/unpack propagation through reductions may not always be beneficial
so user control over propagation decisions is made available through
a control function similar to the one for fusion.

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




More information about the All-commits mailing list