[all-commits] [llvm/llvm-project] cc6c15: [mlir] add VectorizeOp to structured transform ops

ftynse via All-commits all-commits at lists.llvm.org
Mon May 30 08:38:07 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cc6c15920358a93185eced1d9dcec201815debf0
      https://github.com/llvm/llvm-project/commit/cc6c15920358a93185eced1d9dcec201815debf0
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2022-05-30 (Mon, 30 May 2022)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
    M mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
    M mlir/lib/Dialect/Linalg/TransformOps/CMakeLists.txt
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
    A mlir/test/Dialect/Linalg/transform-op-vectorize.mlir
    M mlir/test/Dialect/Transform/test-interpreter.mlir
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [mlir] add VectorizeOp to structured transform ops

Vectorization is a key transformation to achieve high performance on most
architectures. In the transform dialect, vectorization is implemented as a
parameterizable transform op. It currently applies to a scope of payload IR
delimited by some isolated-from-above op, mainly because several enabling
transformations (such as affine simplification) are needed to perform
vectorization and these transformation would apply to ops other than the "main"
computational payload op. A separate "navigation" transform op that obtains the
isolated-from-above ancestor of an op is introduced in the core transform
dialect. Even though it is currently only useful for vectorization,
isolated-from-above ops are a common anchor for transformations (usually
implemented as passes) that is likely to be reused in the future.

Depends On D126374

Reviewed By: nicolasvasilache

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


  Commit: 3f71765a71ca97433723b43c4f64931cace11ca1
      https://github.com/llvm/llvm-project/commit/3f71765a71ca97433723b43c4f64931cace11ca1
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2022-05-30 (Mon, 30 May 2022)

  Changed paths:
    M mlir/cmake/modules/AddMLIRPython.cmake
    M mlir/python/CMakeLists.txt
    A mlir/python/mlir/dialects/LinalgStructuredTransformOps.td
    A mlir/python/mlir/dialects/TransformOps.td
    A mlir/python/mlir/dialects/_structured_transform_ops_ext.py
    A mlir/python/mlir/dialects/_transform_ops_ext.py
    A mlir/python/mlir/dialects/transform/__init__.py
    A mlir/python/mlir/dialects/transform/structured.py
    A mlir/test/python/dialects/transform.py
    A mlir/test/python/dialects/transform_structured_ext.py
    M mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
    M utils/bazel/llvm-project-overlay/mlir/python/BUILD.bazel

  Log Message:
  -----------
  [mlir] provide Python bindings for the Transform dialect

Python bindings for extensions of the Transform dialect are defined in separate
Python source files that can be imported on-demand, i.e., that are not imported
with the "main" transform dialect. This requires a minor addition to the
ODS-based bindings generator. This approach is consistent with the current
model for downstream projects that are expected to bundle MLIR Python bindings:
such projects can include their custom extensions into the bundle similarly to
how they include their dialects.

Reviewed By: nicolasvasilache

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


Compare: https://github.com/llvm/llvm-project/compare/b2719349d2a6...3f71765a71ca


More information about the All-commits mailing list