[all-commits] [llvm/llvm-project] 3963b4: [mlir] Transform op for multitile size generation

ftynse via All-commits all-commits at lists.llvm.org
Tue Jul 12 05:36:48 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3963b4d0dc5bf2bb92eedbab91e2c11653cd8f4e
      https://github.com/llvm/llvm-project/commit/3963b4d0dc5bf2bb92eedbab91e2c11653cd8f4e
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2022-07-12 (Tue, 12 Jul 2022)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/lib/Dialect/Linalg/TransformOps/CMakeLists.txt
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
    M mlir/python/mlir/dialects/_structured_transform_ops_ext.py
    A mlir/test/Dialect/Linalg/multisize-tiling-full.mlir
    A mlir/test/Dialect/Linalg/transform-op-multitile-sizes.mlir
    M mlir/test/python/dialects/transform_structured_ext.py
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [mlir] Transform op for multitile size generation

Introduce a structured transform op that emits IR computing the multi-tile
sizes with requested parameters (target size and divisor) for the given
structured op. The sizes may fold to arithmetic constant operations when the
shape is constant. These operations may then be used to call the existing
tiling transformation with a single non-zero dynamic size (i.e. perform
strip-mining) for each of the dimensions separately, thus achieving multi-size
tiling with optional loop interchange. A separate test exercises the entire
script.

Depends On D129217

Reviewed By: nicolasvasilache

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


  Commit: e15b855e096eb13d4f40a3acd65061e964c5a555
      https://github.com/llvm/llvm-project/commit/e15b855e096eb13d4f40a3acd65061e964c5a555
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2022-07-12 (Tue, 12 Jul 2022)

  Changed paths:
    M mlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.h
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/Transform/IR/TransformInterfaces.cpp
    M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
    M mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td

  Log Message:
  -----------
  [mlir] Use semantically readable functions for transform op effects

A recent commit introduced helper functions with semantically meaningful names
to populate the lists of memory effects in transform ops, use them whenever
possible.

Depends On D129287

Reviewed By: springerm

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


  Commit: 81b62f7feb5de2fb37261974ffa0b2a43a2d83ee
      https://github.com/llvm/llvm-project/commit/81b62f7feb5de2fb37261974ffa0b2a43a2d83ee
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2022-07-12 (Tue, 12 Jul 2022)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
    M mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
    M mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Split.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
    M mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp
    M mlir/lib/Dialect/Linalg/Utils/Utils.cpp
    M mlir/test/Interfaces/TilingInterface/tile-using-interface.mlir
    M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterface.cpp

  Log Message:
  -----------
  [mlir] Handle linalg.index correctly in TilingInterface

The existing implementation of the TilingInterface for Linalg ops was not
modifying the `linalg.index` ops contained within other Linalg ops (they need
to be summed up with the values of respective tile loop induction variables),
which led to the interface-based tiling being incorrect for any Linalg op with
index semantics.

In the process, fix the function performing the index offsetting to use the
pattern rewriter API instead of RAUW as it is being called from patterns and
may mess up the internal state of the rewriter. Also rename the function to
clearly catch all uses.

Depends On D129365

Reviewed By: mravishankar

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


Compare: https://github.com/llvm/llvm-project/compare/cc309721d20c...81b62f7feb5d


More information about the All-commits mailing list