[all-commits] [llvm/llvm-project] 5f0d4f: [mlir] Introduce Transform ops for loops

ftynse via All-commits all-commits at lists.llvm.org
Thu Jun 9 02:42:11 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5f0d4f208e24a3e9f7369b712c5c2598dd5582d4
      https://github.com/llvm/llvm-project/commit/5f0d4f208e24a3e9f7369b712c5c2598dd5582d4
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2022-06-09 (Thu, 09 Jun 2022)

  Changed paths:
    M mlir/include/mlir/Dialect/SCF/CMakeLists.txt
    A mlir/include/mlir/Dialect/SCF/Patterns.h
    A mlir/include/mlir/Dialect/SCF/TransformOps/CMakeLists.txt
    A mlir/include/mlir/Dialect/SCF/TransformOps/SCFTransformOps.h
    A mlir/include/mlir/Dialect/SCF/TransformOps/SCFTransformOps.td
    M mlir/include/mlir/Dialect/SCF/Transforms.h
    M mlir/include/mlir/Dialect/SCF/Utils/Utils.h
    M mlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.h
    M mlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.td
    M mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
    M mlir/include/mlir/InitAllDialects.h
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/SCF/CMakeLists.txt
    A mlir/lib/Dialect/SCF/TransformOps/CMakeLists.txt
    A mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp
    M mlir/lib/Dialect/SCF/Transforms/LoopPipelining.cpp
    M mlir/lib/Dialect/SCF/Utils/Utils.cpp
    M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
    M mlir/python/CMakeLists.txt
    A mlir/python/mlir/dialects/SCFLoopTransformOps.td
    A mlir/python/mlir/dialects/_loop_transform_ops_ext.py
    A mlir/python/mlir/dialects/transform/loop.py
    A mlir/test/Dialect/SCF/transform-ops.mlir
    A mlir/test/python/dialects/transform_loop_ext.py
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/python/BUILD.bazel

  Log Message:
  -----------
  [mlir] Introduce Transform ops for loops

Introduce transform ops for "for" loops, in particular for peeling, software
pipelining and unrolling, along with a couple of "IR navigation" ops. These ops
are intended to be generalized to different kinds of loops when possible and
therefore use the "loop" prefix. They currently live in the SCF dialect as
there is no clear place to put transform ops that may span across several
dialects, this decision is postponed until the ops actually need to handle
non-SCF loops.

Additionally refactor some common utilities for transform ops into trait or
interface methods, and change the loop pipelining to be a returning pattern.

Reviewed By: springerm

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




More information about the All-commits mailing list