[all-commits] [llvm/llvm-project] 726d07: [mlir][transform] ApplyPatternsOp: Add check to pr...

Matthias Springer via All-commits all-commits at lists.llvm.org
Mon Jun 19 00:04:13 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 726d076784a85a64f33f52d7714e6af8a47dae83
      https://github.com/llvm/llvm-project/commit/726d076784a85a64f33f52d7714e6af8a47dae83
  Author: Matthias Springer <me at m-sp.org>
  Date:   2023-06-19 (Mon, 19 Jun 2023)

  Changed paths:
    M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
    M mlir/test/Dialect/Tensor/fold-empty-op.mlir
    M mlir/test/Dialect/Tensor/rewrite-as-constant.mlir
    M mlir/test/Dialect/Transform/test-pattern-application.mlir
    M mlir/test/Dialect/Vector/vector-contract-matvec-transforms.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-tensor-slice-transforms.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

  Log Message:
  -----------
  [mlir][transform] ApplyPatternsOp: Add check to prevent modifying the transform IR

Add an extra check to make sure that transform IR is not getting modified by this op while it is being interpreted. This generally dangerous and we may want to enforce this for all transform ops that modify the payload in the future.

Users should generally try to apply patterns only to the piece of IR where it is needed (e.g., a matched function) and not the entire module (which may contain the transform IR).

This revision is in response to a crash in a downstream compiler that was caused by a dead `transform.structured.match` op that was removed by the GreedyPatternRewriteDriver's DCE while the enclosing sequence was being interpreted.

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




More information about the All-commits mailing list