[all-commits] [llvm/llvm-project] 5a9bdd: [mlir] split transform interfaces into a separate ...

ftynse via All-commits all-commits at lists.llvm.org
Wed Mar 20 14:15:39 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5a9bdd85ee4d8527e2cedf44f3ce26ff414f9b6a
      https://github.com/llvm/llvm-project/commit/5a9bdd85ee4d8527e2cedf44f3ce26ff414f9b6a
  Author: Oleksandr "Alex" Zinenko <zinenko at google.com>
  Date:   2024-03-20 (Wed, 20 Mar 2024)

  Changed paths:
    M mlir/docs/Tutorials/transform/Ch2.md
    M mlir/examples/transform/Ch2/include/MyExtension.h
    M mlir/examples/transform/Ch2/include/MyExtension.td
    M mlir/examples/transform/Ch2/lib/MyExtension.cpp
    M mlir/examples/transform/Ch3/include/MyExtension.h
    M mlir/examples/transform/Ch3/include/MyExtension.td
    M mlir/examples/transform/Ch3/include/MyExtensionTypes.td
    M mlir/examples/transform/Ch3/lib/MyExtension.cpp
    M mlir/examples/transform/Ch4/include/MyExtension.h
    M mlir/examples/transform/Ch4/include/MyExtension.td
    M mlir/include/mlir/Dialect/AMDGPU/TransformOps/AMDGPUTransformOps.h
    M mlir/include/mlir/Dialect/AMDGPU/TransformOps/AMDGPUTransformOps.td
    M mlir/include/mlir/Dialect/Affine/TransformOps/AffineTransformOps.h
    M mlir/include/mlir/Dialect/Affine/TransformOps/AffineTransformOps.td
    M mlir/include/mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.h
    M mlir/include/mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.td
    M mlir/include/mlir/Dialect/Func/TransformOps/FuncTransformOps.h
    M mlir/include/mlir/Dialect/Func/TransformOps/FuncTransformOps.td
    M mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.h
    M mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.td
    M mlir/include/mlir/Dialect/GPU/TransformOps/Utils.h
    M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.h
    M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
    M mlir/include/mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.h
    M mlir/include/mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.td
    M mlir/include/mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.h
    M mlir/include/mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.td
    M mlir/include/mlir/Dialect/SCF/TransformOps/SCFTransformOps.h
    M mlir/include/mlir/Dialect/SCF/TransformOps/SCFTransformOps.td
    M mlir/include/mlir/Dialect/SparseTensor/TransformOps/SparseTensorTransformOps.h
    M mlir/include/mlir/Dialect/Tensor/TransformOps/TensorTransformOps.h
    M mlir/include/mlir/Dialect/Tensor/TransformOps/TensorTransformOps.td
    M mlir/include/mlir/Dialect/Transform/CMakeLists.txt
    M mlir/include/mlir/Dialect/Transform/DebugExtension/DebugExtensionOps.h
    M mlir/include/mlir/Dialect/Transform/DebugExtension/DebugExtensionOps.td
    M mlir/include/mlir/Dialect/Transform/IR/CMakeLists.txt
    M mlir/include/mlir/Dialect/Transform/IR/MatchInterfaces.h
    M mlir/include/mlir/Dialect/Transform/IR/MatchInterfaces.td
    M mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
    R mlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.h
    R 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
    M mlir/include/mlir/Dialect/Transform/IR/TransformTypes.h
    M mlir/include/mlir/Dialect/Transform/IR/TransformTypes.td
    A mlir/include/mlir/Dialect/Transform/Interfaces/CMakeLists.txt
    A mlir/include/mlir/Dialect/Transform/Interfaces/TransformInterfaces.h
    A mlir/include/mlir/Dialect/Transform/Interfaces/TransformInterfaces.td
    M mlir/include/mlir/Dialect/Transform/LoopExtension/LoopExtensionOps.h
    M mlir/include/mlir/Dialect/Transform/LoopExtension/LoopExtensionOps.td
    M mlir/include/mlir/Dialect/Transform/PDLExtension/PDLExtensionOps.h
    M mlir/include/mlir/Dialect/Transform/PDLExtension/PDLExtensionOps.td
    M mlir/include/mlir/Dialect/Transform/Transforms/TransformInterpreterPassBase.h
    M mlir/include/mlir/Dialect/Transform/Transforms/TransformInterpreterUtils.h
    M mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.h
    M mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td
    M mlir/lib/CAPI/Dialect/TransformInterpreter.cpp
    M mlir/lib/Dialect/Affine/TransformOps/AffineTransformOps.cpp
    M mlir/lib/Dialect/Func/TransformOps/FuncTransformOps.cpp
    M mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp
    M mlir/lib/Dialect/GPU/TransformOps/Utils.cpp
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgMatchOps.cpp
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/MemRef/TransformOps/MemRefTransformOps.cpp
    M mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorDialect.cpp
    M mlir/lib/Dialect/Tensor/TransformOps/TensorTransformOps.cpp
    M mlir/lib/Dialect/Transform/CMakeLists.txt
    M mlir/lib/Dialect/Transform/IR/CMakeLists.txt
    M mlir/lib/Dialect/Transform/IR/TransformDialect.cpp
    R mlir/lib/Dialect/Transform/IR/TransformInterfaces.cpp
    M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
    M mlir/lib/Dialect/Transform/IR/TransformTypes.cpp
    A mlir/lib/Dialect/Transform/Interfaces/CMakeLists.txt
    A mlir/lib/Dialect/Transform/Interfaces/TransformInterfaces.cpp
    M mlir/lib/Dialect/Transform/Transforms/CheckUses.cpp
    M mlir/lib/Dialect/Transform/Transforms/InferEffects.cpp
    M mlir/lib/Dialect/Transform/Transforms/InterpreterPass.cpp
    M mlir/lib/Dialect/Transform/Transforms/TransformInterpreterPassBase.cpp
    M mlir/lib/Dialect/Transform/Transforms/TransformInterpreterUtils.cpp
    M mlir/lib/Dialect/Vector/TransformOps/VectorTransformOps.cpp
    M mlir/test/Dialect/Tensor/decompose-concat.mlir
    M mlir/test/Dialect/Tensor/fold-empty-op.mlir
    M mlir/test/Dialect/Tensor/fold-tensor-subset-ops-into-vector-transfers.mlir
    M mlir/test/Dialect/Tensor/rewrite-as-constant.mlir
    M mlir/test/Dialect/Vector/vector-contract-to-outerproduct-matvec-transforms.mlir
    M mlir/test/Dialect/Vector/vector-materialize-mask.mlir
    M mlir/test/Dialect/Vector/vector-multi-reduction-lowering.mlir
    M mlir/test/Dialect/Vector/vector-multi-reduction-outer-lowering.mlir
    M mlir/test/Dialect/Vector/vector-transfer-drop-unit-dims-patterns.mlir
    M mlir/test/Dialect/Vector/vector-transfer-full-partial-split-copy-transform.mlir
    M mlir/test/Dialect/Vector/vector-transfer-full-partial-split.mlir
    M mlir/test/Dialect/Vector/vector-transfer-to-vector-load-store.mlir
    M mlir/test/Dialect/Vector/vector-transpose-lowering.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-shuffle16x16.mlir
    M mlir/test/lib/Dialect/Tensor/TestTensorTransforms.cpp
    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 mlir/test/lib/Dialect/Transform/TestTransformDialectInterpreter.cpp
    M mlir/test/lib/Dialect/Transform/TestTransformStateExtension.h
    M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.cpp
    M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.td
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel

  Log Message:
  -----------
  [mlir] split transform interfaces into a separate library (#85221)

Transform interfaces are implemented, direction or via extensions, in
libraries belonging to multiple other dialects. Those dialects don't
need to depend on the non-interface part of the transform dialect, which
includes the growing number of ops and transitive dependency footprint.

Split out the interfaces into a separate library. This in turn requires
flipping the dependency from the interface on the dialect that has crept
in because both co-existed in one library. The interface shouldn't
depend on the transform dialect either.

As a consequence of splitting, the capability of the interpreter to
automatically walk the payload IR to identify payload ops of a certain
kind based on the type used for the entry point symbol argument is
disabled. This is a good move by itself as it simplifies the interpreter
logic. This functionality can be trivially replaced by a
`transform.structured.match` operation.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list