[all-commits] [llvm/llvm-project] 0242b9: [mlir] more side effect verification in transform ...

ftynse via All-commits all-commits at lists.llvm.org
Mon Feb 6 05:15:52 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0242b96214a608ee3dd509d0967128bc172d2da6
      https://github.com/llvm/llvm-project/commit/0242b96214a608ee3dd509d0967128bc172d2da6
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2023-02-06 (Mon, 06 Feb 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/Affine/TransformOps/AffineTransformOps.td
    M mlir/include/mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.td
    M mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.td
    M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
    M mlir/include/mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.td
    M mlir/include/mlir/Dialect/SCF/TransformOps/SCFTransformOps.td
    R mlir/include/mlir/Dialect/Transform/IR/TransformEffects.td
    M mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
    M mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td
    M mlir/lib/Dialect/Bufferization/TransformOps/BufferizationTransformOps.cpp
    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/Dialect/Transform/ops-invalid.mlir
    M mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp
    M mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td

  Log Message:
  -----------
  [mlir] more side effect verification in transform dialect

Add a verifier checking that if a transform operation consumes a handle
(which is associated with a payload operation being erased or
recreated), it also indicates modification of the payload IR. This
hasn't been consistent in the past because of the "no-aliasing"
assumption where we couldn't have had more than one handle to an
operation, requiring some handle-manipulation operations, such as
`transform.merge_handles` to consume their operands. That assumption has
been liften and it is no longer necessary for these operations to
consume handles and thus make the life harder for the clients.

Additionally, remove TransformEffects.td that uses the ODS mechanism for
indicating side effects that works only for operands and results. It
was being used incorrectly to also indicate effects on the payload IR,
not assocaited with any IR value, and lacked the consume/produce
semantics available via helpers in C++.

Reviewed By: nicolasvasilache

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




More information about the All-commits mailing list