[all-commits] [llvm/llvm-project] bba85e: [mlir] add types to the transform dialect
ftynse via All-commits
all-commits at lists.llvm.org
Tue Oct 11 02:55:43 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: bba85ebdfeffba74d19a22cfb592641d0af6b66a
https://github.com/llvm/llvm-project/commit/bba85ebdfeffba74d19a22cfb592641d0af6b66a
Author: Alex Zinenko <zinenko at google.com>
Date: 2022-10-11 (Tue, 11 Oct 2022)
Changed paths:
M mlir/docs/Dialects/Transform.md
M mlir/include/mlir/Dialect/Transform/IR/CMakeLists.txt
M mlir/include/mlir/Dialect/Transform/IR/TransformDialect.h
M mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
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.h
M mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
A mlir/include/mlir/Dialect/Transform/IR/TransformTypes.h
A mlir/include/mlir/Dialect/Transform/IR/TransformTypes.td
M mlir/lib/Dialect/Transform/IR/CMakeLists.txt
M mlir/lib/Dialect/Transform/IR/TransformDialect.cpp
M mlir/lib/Dialect/Transform/IR/TransformInterfaces.cpp
M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
A mlir/lib/Dialect/Transform/IR/TransformTypes.cpp
M mlir/test/Dialect/Transform/ops.mlir
M mlir/test/Dialect/Transform/test-dialect-injection.mlir
M mlir/test/Dialect/Transform/test-interpreter.mlir
M mlir/test/lib/Dialect/Transform/CMakeLists.txt
M mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp
M mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.h
M mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
[mlir] add types to the transform dialect
Introduce a type system for the transform dialect. A transform IR type
captures the expectations of the transform IR on the payload IR
operations that are being transformed, such as being of a certain kind
or implementing an interface that enables the transformation. This
provides stricter checking and better readability of the transform IR
than using the catch-all "handle" type.
This change implements the basic support for a type system amendable to
dialect extensions and adds a drop-in replacement for the unrestricted
"handle" type. The actual switch of transform dialect ops to that type
will happen in a separate commit.
See https://discourse.llvm.org/t/rfc-type-system-for-the-transform-dialect/65702
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D135164
Commit: b586d56c7b8b0188355a4d7f5f8b09f8b3847757
https://github.com/llvm/llvm-project/commit/b586d56c7b8b0188355a4d7f5f8b09f8b3847757
Author: Alex Zinenko <zinenko at google.com>
Date: 2022-10-11 (Tue, 11 Oct 2022)
Changed paths:
M mlir/include/mlir/Dialect/Transform/IR/TransformDialect.h
M mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
M mlir/lib/Dialect/Transform/IR/TransformDialect.cpp
Log Message:
-----------
[mlir] clean up transform dialect definitions, NFC
Refactor the definition of the Transform dialect to move non-trivial
method implementations out of the .td file, and detemplatize functions
when possible while moving their implementations to a .cpp.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D135165
Commit: 6fe03096025329add1b4e72273d9f631aa3acfda
https://github.com/llvm/llvm-project/commit/6fe03096025329add1b4e72273d9f631aa3acfda
Author: Alex Zinenko <zinenko at google.com>
Date: 2022-10-11 (Tue, 11 Oct 2022)
Changed paths:
M mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
M mlir/lib/Dialect/Transform/IR/TransformDialect.cpp
M mlir/lib/Dialect/Transform/IR/TransformInterfaces.cpp
M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
M mlir/python/mlir/dialects/_transform_ops_ext.py
M mlir/test/Dialect/Bufferization/Transforms/transform-ops.mlir
M mlir/test/Dialect/GPU/transform-gpu-failing.mlir
M mlir/test/Dialect/GPU/transform-gpu.mlir
M mlir/test/Dialect/Linalg/multisize-tiling-full.mlir
M mlir/test/Dialect/Linalg/promote.mlir
M mlir/test/Dialect/Linalg/promotion_options.mlir
M mlir/test/Dialect/Linalg/tile-to-foreach-thread.mlir
M mlir/test/Dialect/Linalg/transform-op-decompose.mlir
M mlir/test/Dialect/Linalg/transform-op-fuse-into-containing.mlir
M mlir/test/Dialect/Linalg/transform-op-fuse.mlir
M mlir/test/Dialect/Linalg/transform-op-generalize.mlir
M mlir/test/Dialect/Linalg/transform-op-interchange.mlir
M mlir/test/Dialect/Linalg/transform-op-match.mlir
M mlir/test/Dialect/Linalg/transform-op-multitile-sizes.mlir
M mlir/test/Dialect/Linalg/transform-op-pad.mlir
M mlir/test/Dialect/Linalg/transform-op-scalarize.mlir
M mlir/test/Dialect/Linalg/transform-op-split-reduction-by-scaling.mlir
M mlir/test/Dialect/Linalg/transform-op-split-reduction.mlir
M mlir/test/Dialect/Linalg/transform-op-split.mlir
M mlir/test/Dialect/Linalg/transform-op-tile.mlir
M mlir/test/Dialect/Linalg/transform-op-vectorize.mlir
M mlir/test/Dialect/Linalg/transform-patterns.mlir
M mlir/test/Dialect/Linalg/transform-promotion.mlir
M mlir/test/Dialect/Linalg/transform-tile-and-fuse.mlir
M mlir/test/Dialect/Linalg/vectorization.mlir
M mlir/test/Dialect/SCF/transform-ops.mlir
M mlir/test/Dialect/Transform/check-use-after-free.mlir
M mlir/test/Dialect/Transform/expensive-checks.mlir
M mlir/test/Dialect/Transform/ops-invalid.mlir
M mlir/test/Dialect/Transform/ops.mlir
M mlir/test/Dialect/Transform/selective-targeting.mlir
M mlir/test/Dialect/Transform/test-interpreter.mlir
M mlir/test/python/dialects/transform.py
M mlir/test/python/dialects/transform_loop_ext.py
M mlir/test/python/dialects/transform_structured_ext.py
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[mlir] switch transform dialect ops to use TransformTypeInterface
Use the recently introduced TransformTypeInterface instead of hardcoding
the PDLOperationType. This will allow the operations to use more
specific transform types to express pre/post-conditions in the future.
It requires the syntax and Python op construction API to be updated.
Dialect extensions will be switched separately.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D135584
Commit: 6bb997c032f509d4f61461aa461c8431325cbb2a
https://github.com/llvm/llvm-project/commit/6bb997c032f509d4f61461aa461c8431325cbb2a
Author: Alex Zinenko <zinenko at google.com>
Date: 2022-10-11 (Tue, 11 Oct 2022)
Changed paths:
M mlir/lib/Dialect/Transform/IR/TransformInterfaces.cpp
Log Message:
-----------
[mlir] cleanup transform payload setting
Before the multi-handle relaxation, the transform interpreter did not
actually set payload for a handle that had no further uses as a hacky
mechanism to work around the multi-handle problem. This is no longer
necessary and can be removed to avoid debugging surprises when a handle
has no payload even when its producing op assigned it.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D135585
Commit: 3e1f6d02f755e34a0a12a8dd439fb65f84d6621f
https://github.com/llvm/llvm-project/commit/3e1f6d02f755e34a0a12a8dd439fb65f84d6621f
Author: Alex Zinenko <zinenko at google.com>
Date: 2022-10-11 (Tue, 11 Oct 2022)
Changed paths:
A mlir/include/mlir-c/Dialect/Transform.h
M mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
M mlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.td
M mlir/include/mlir/Dialect/Transform/IR/TransformTypes.td
A mlir/lib/Bindings/Python/DialectTransform.cpp
M mlir/lib/CAPI/Dialect/CMakeLists.txt
A mlir/lib/CAPI/Dialect/Transform.cpp
M mlir/lib/Dialect/Transform/IR/TransformDialect.cpp
M mlir/lib/Dialect/Transform/IR/TransformTypes.cpp
M mlir/python/CMakeLists.txt
A mlir/python/mlir/_mlir_libs/_mlir/dialects/transform/__init__.pyi
M mlir/python/mlir/dialects/_transform_ops_ext.py
M mlir/python/mlir/dialects/transform/__init__.py
M mlir/test/CAPI/CMakeLists.txt
A mlir/test/CAPI/transform.c
M mlir/test/CMakeLists.txt
M mlir/test/Dialect/Transform/ops.mlir
M mlir/test/Dialect/Transform/test-interpreter.mlir
M mlir/test/lit.cfg.py
M mlir/test/python/dialects/transform.py
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[mlir] add OperationType to the Transform dialect
Add a new OperationType handle type to the Transform dialect. This
transform type is parameterized by the name of the payload operation it
can point to. It is intended as a constraint on transformations that are
only applicable to a specific kind of payload operations. If a
transformation is applicable to a small set of operation classes, it can
be wrapped into a transform op by using a disjunctive constraint, such
as `Type<Or<[Transform_ConcreteOperation<"foo">.predicate,
Transform_ConcreteOperation<"bar">.predicate]>>` for its operand without
modifying this type. Broader sets of accepted operations should be
modeled as specific types.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D135586
Commit: 59bb8af4c307623ff39f66006e0d4a3fd6a7063f
https://github.com/llvm/llvm-project/commit/59bb8af4c307623ff39f66006e0d4a3fd6a7063f
Author: Alex Zinenko <zinenko at google.com>
Date: 2022-10-11 (Tue, 11 Oct 2022)
Changed paths:
M mlir/include/mlir/Dialect/SCF/TransformOps/SCFTransformOps.h
M mlir/include/mlir/Dialect/SCF/TransformOps/SCFTransformOps.td
M mlir/lib/Dialect/SCF/TransformOps/CMakeLists.txt
M mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp
M mlir/python/mlir/dialects/_loop_transform_ops_ext.py
M mlir/test/Dialect/Linalg/transform-op-fuse.mlir
M mlir/test/Dialect/Linalg/transform-op-match.mlir
M mlir/test/Dialect/MemRef/transform-ops.mlir
M mlir/test/Dialect/SCF/transform-ops.mlir
M mlir/test/Dialect/Transform/expensive-checks.mlir
M mlir/test/Dialect/Transform/test-interpreter.mlir
M mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td
M mlir/test/python/dialects/transform_loop_ext.py
Log Message:
-----------
[mlir] switch the transform loop extension to use types
Add types to the Loop (SCF) extension of the transform dialect.
See https://discourse.llvm.org/t/rfc-type-system-for-the-transform-dialect/65702
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D135587
Compare: https://github.com/llvm/llvm-project/compare/b845addae89b...59bb8af4c307
More information about the All-commits
mailing list