[Mlir-commits] [mlir] 46af120 - [mlir] don't hardcode PDL_Operation in TestTransformDialectExtensions

Alex Zinenko llvmlistbot at llvm.org
Mon May 22 01:19:59 PDT 2023


Author: Alex Zinenko
Date: 2023-05-22T08:19:49Z
New Revision: 46af120e159c18b5530738ce396a12b545063f3d

URL: https://github.com/llvm/llvm-project/commit/46af120e159c18b5530738ce396a12b545063f3d
DIFF: https://github.com/llvm/llvm-project/commit/46af120e159c18b5530738ce396a12b545063f3d.diff

LOG: [mlir] don't hardcode PDL_Operation in TestTransformDialectExtensions

Update operations in Transform dialect extensions used for testing to
use the more generic `TransformHandleTypeInterface` type constraint
instead of hardcoding `PDL_Operation`. See
https://discourse.llvm.org/t/rfc-type-system-for-the-transform-dialect/65702
for motivation. This is particularly important as these tests are often
used as source of best practices.

Update tests to use `!transform.any_op` instead of `!pdl.operation`.

Depends On D150785

Reviewed By: nicolasvasilache

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

Added: 
    

Modified: 
    mlir/test/Dialect/Transform/check-use-after-free.mlir
    mlir/test/Dialect/Transform/expensive-checks.mlir
    mlir/test/Dialect/Transform/multi-arg-top-level-params.mlir
    mlir/test/Dialect/Transform/ops-invalid.mlir
    mlir/test/Dialect/Transform/ops.mlir
    mlir/test/Dialect/Transform/test-dialect-injection.mlir
    mlir/test/Dialect/Transform/test-interpreter.mlir
    mlir/test/Dialect/Transform/transform-state-extension.mlir
    mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td

Removed: 
    


################################################################################
diff  --git a/mlir/test/Dialect/Transform/check-use-after-free.mlir b/mlir/test/Dialect/Transform/check-use-after-free.mlir
index e2c0f07032507..742c5dcc78f60 100644
--- a/mlir/test/Dialect/Transform/check-use-after-free.mlir
+++ b/mlir/test/Dialect/Transform/check-use-after-free.mlir
@@ -2,7 +2,7 @@
 
 func.func @use_after_free_branching_control_flow() {
   // expected-note @below {{allocated here}}
-  %0 = transform.test_produce_self_handle_or_forward_operand
+  %0 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
   transform.test_transform_op_with_regions {
     "transform.test_branching_transform_op_terminator"() : () -> ()
   },
@@ -11,14 +11,14 @@ func.func @use_after_free_branching_control_flow() {
     "transform.test_branching_transform_op_terminator"()[^bb1, ^bb2] : () -> ()
   ^bb1:
     // expected-note @below {{freed here}}
-    transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+    transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
     "transform.test_branching_transform_op_terminator"()[^bb3] : () -> ()
   ^bb2:
     "transform.test_branching_transform_op_terminator"()[^bb3] : () -> ()
   ^bb3:
     // expected-warning @below {{operand #0 may be used after free}}
-    transform.sequence %0 : !pdl.operation failures(propagate) {
-    ^bb0(%arg0: !pdl.operation):
+    transform.sequence %0 : !transform.any_op failures(propagate) {
+    ^bb0(%arg0: !transform.any_op):
     }
     "transform.test_branching_transform_op_terminator"() : () -> ()
   }
@@ -29,7 +29,7 @@ func.func @use_after_free_branching_control_flow() {
 
 func.func @use_after_free_in_nested_op() {
   // expected-note @below {{allocated here}}
-  %0 = transform.test_produce_self_handle_or_forward_operand
+  %0 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
   // expected-note @below {{freed here}}
   transform.test_transform_op_with_regions {
     "transform.test_branching_transform_op_terminator"() : () -> ()
@@ -38,7 +38,7 @@ func.func @use_after_free_in_nested_op() {
   ^bb0:
     "transform.test_branching_transform_op_terminator"()[^bb1, ^bb2] : () -> ()
   ^bb1:
-    transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+    transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
     "transform.test_branching_transform_op_terminator"()[^bb3] : () -> ()
   ^bb2:
     "transform.test_branching_transform_op_terminator"()[^bb3] : () -> ()
@@ -46,8 +46,8 @@ func.func @use_after_free_in_nested_op() {
     "transform.test_branching_transform_op_terminator"() : () -> ()
   }
   // expected-warning @below {{operand #0 may be used after free}}
-  transform.sequence %0 : !pdl.operation failures(propagate) {
-    ^bb0(%arg0: !pdl.operation):
+  transform.sequence %0 : !transform.any_op failures(propagate) {
+    ^bb0(%arg0: !transform.any_op):
   }
   return
 }
@@ -56,29 +56,29 @@ func.func @use_after_free_in_nested_op() {
 
 func.func @use_after_free_recursive_side_effects() {
   transform.sequence failures(propagate) {
-  ^bb0(%arg0: !pdl.operation):
+  ^bb0(%arg0: !transform.any_op):
     // expected-note @below {{allocated here}}
-    %0 = transform.sequence %arg0 : !pdl.operation -> !pdl.operation failures(propagate) attributes { ord = 1 } {
-    ^bb1(%arg1: !pdl.operation):
-      yield %arg1 : !pdl.operation
+    %0 = transform.sequence %arg0 : !transform.any_op -> !transform.any_op failures(propagate) attributes { ord = 1 } {
+    ^bb1(%arg1: !transform.any_op):
+      yield %arg1 : !transform.any_op
     }
-    transform.sequence %0 : !pdl.operation failures(propagate) attributes { ord = 2 } {
-    ^bb2(%arg2: !pdl.operation):
+    transform.sequence %0 : !transform.any_op failures(propagate) attributes { ord = 2 } {
+    ^bb2(%arg2: !transform.any_op):
     }
-    transform.sequence %0 : !pdl.operation failures(propagate) attributes { ord = 3 } {
-    ^bb3(%arg3: !pdl.operation):
+    transform.sequence %0 : !transform.any_op failures(propagate) attributes { ord = 3 } {
+    ^bb3(%arg3: !transform.any_op):
     }
 
     // `transform.sequence` has recursive side effects so it has the same "free"
     // as the child op it contains.
     // expected-note @below {{freed here}}
-    transform.sequence %0 : !pdl.operation failures(propagate) attributes { ord = 4 } {
-    ^bb4(%arg4: !pdl.operation):
-      test_consume_operand_of_op_kind_or_fail %0, "transform.sequence"
+    transform.sequence %0 : !transform.any_op failures(propagate) attributes { ord = 4 } {
+    ^bb4(%arg4: !transform.any_op):
+      test_consume_operand_of_op_kind_or_fail %0, "transform.sequence" : !transform.any_op
     }
     // expected-warning @below {{operand #0 may be used after free}}
-    transform.sequence %0 : !pdl.operation failures(propagate) attributes { ord = 5 } {
-    ^bb3(%arg3: !pdl.operation):
+    transform.sequence %0 : !transform.any_op failures(propagate) attributes { ord = 5 } {
+    ^bb3(%arg3: !transform.any_op):
     }
   }
   return
@@ -88,24 +88,24 @@ func.func @use_after_free_recursive_side_effects() {
 
 func.func @use_after_free() {
   transform.sequence failures(propagate) {
-  ^bb0(%arg0: !pdl.operation):
+  ^bb0(%arg0: !transform.any_op):
     // expected-note @below {{allocated here}}
-    %0 = transform.sequence %arg0 : !pdl.operation -> !pdl.operation failures(propagate) attributes { ord = 1 } {
-    ^bb1(%arg1: !pdl.operation):
-      yield %arg1 : !pdl.operation
+    %0 = transform.sequence %arg0 : !transform.any_op -> !transform.any_op failures(propagate) attributes { ord = 1 } {
+    ^bb1(%arg1: !transform.any_op):
+      yield %arg1 : !transform.any_op
     }
-    transform.sequence %0 : !pdl.operation failures(propagate) attributes { ord = 2 } {
-    ^bb2(%arg2: !pdl.operation):
+    transform.sequence %0 : !transform.any_op failures(propagate) attributes { ord = 2 } {
+    ^bb2(%arg2: !transform.any_op):
     }
-    transform.sequence %0 : !pdl.operation failures(propagate) attributes { ord = 3 } {
-    ^bb3(%arg3: !pdl.operation):
+    transform.sequence %0 : !transform.any_op failures(propagate) attributes { ord = 3 } {
+    ^bb3(%arg3: !transform.any_op):
     }
 
     // expected-note @below {{freed here}}
-    test_consume_operand_of_op_kind_or_fail %0, "transform.sequence"
+    test_consume_operand_of_op_kind_or_fail %0, "transform.sequence" : !transform.any_op
     // expected-warning @below {{operand #0 may be used after free}}
-    transform.sequence %0 : !pdl.operation failures(propagate) attributes { ord = 5 } {
-    ^bb3(%arg3: !pdl.operation):
+    transform.sequence %0 : !transform.any_op failures(propagate) attributes { ord = 5 } {
+    ^bb3(%arg3: !transform.any_op):
     }
   }
   return
@@ -118,7 +118,7 @@ func.func @use_after_free() {
 // be reported as use-after-free.
 func.func @use_after_free_self_cycle() {
   // expected-note @below {{allocated here}}
-  %0 = transform.test_produce_self_handle_or_forward_operand
+  %0 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
   transform.test_transform_op_with_regions {
     "transform.test_branching_transform_op_terminator"() : () -> ()
   },
@@ -127,12 +127,12 @@ func.func @use_after_free_self_cycle() {
     "transform.test_branching_transform_op_terminator"()[^bb1] : () -> ()
   ^bb1:
     // expected-warning @below {{operand #0 may be used after free}}
-    transform.sequence %0 : !pdl.operation failures(propagate) {
-    ^bb0(%arg0: !pdl.operation):
+    transform.sequence %0 : !transform.any_op failures(propagate) {
+    ^bb0(%arg0: !transform.any_op):
     }
     // expected-warning @below {{operand #0 may be used after free}}
     // expected-note @below {{freed here}}
-    transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+    transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
     "transform.test_branching_transform_op_terminator"()[^bb1, ^bb2] : () -> ()
   ^bb2:
     "transform.test_branching_transform_op_terminator"() : () -> ()
@@ -147,7 +147,7 @@ func.func @use_after_free_self_cycle() {
 // use-after-free.
 func.func @use_after_free_cycle() {
   // expected-note @below {{allocated here}}
-  %0 = transform.test_produce_self_handle_or_forward_operand
+  %0 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
   transform.test_transform_op_with_regions {
     "transform.test_branching_transform_op_terminator"() : () -> ()
   },
@@ -157,7 +157,7 @@ func.func @use_after_free_cycle() {
   ^bb1:
     // expected-warning @below {{operand #0 may be used after free}}
     // expected-note @below {{freed here}}
-    transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+    transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
     "transform.test_branching_transform_op_terminator"()[^bb2, ^bb3] : () -> ()
   ^bb2:
     "transform.test_branching_transform_op_terminator"()[^bb1] : () -> ()
@@ -172,8 +172,8 @@ func.func @use_after_free_cycle() {
 // This should not crash.
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
-  alternatives %arg0 : !pdl.operation {
-  ^bb0(%arg1: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
+  alternatives %arg0 : !transform.any_op {
+  ^bb0(%arg1: !transform.any_op):
   }
 }

diff  --git a/mlir/test/Dialect/Transform/expensive-checks.mlir b/mlir/test/Dialect/Transform/expensive-checks.mlir
index de5355443edee..3a7a3df97046d 100644
--- a/mlir/test/Dialect/Transform/expensive-checks.mlir
+++ b/mlir/test/Dialect/Transform/expensive-checks.mlir
@@ -7,7 +7,7 @@ func.func @func() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @return : benefit(1) {
     %0 = operands
     %1 = types
@@ -15,15 +15,15 @@ transform.with_pdl_patterns {
     rewrite %2 with "transform.dialect"
   }
 
-  sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
+  sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
     // expected-note @below {{handle to invalidated ops}}
-    %0 = pdl_match @return in %arg1 : (!pdl.operation) -> !pdl.operation
-    %1 = get_closest_isolated_parent %0 : (!pdl.operation) -> !pdl.operation
+    %0 = pdl_match @return in %arg1 : (!transform.any_op) -> !transform.any_op
+    %1 = get_closest_isolated_parent %0 : (!transform.any_op) -> !transform.any_op
     // expected-note @below {{invalidated by this transform op that consumes its operand #0}}
-    test_consume_operand %1 : !pdl.operation
+    test_consume_operand %1 : !transform.any_op
     // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
-    test_print_remark_at_operand %0, "remark" : !pdl.operation
+    test_print_remark_at_operand %0, "remark" : !transform.any_op
   }
 }
 
@@ -36,7 +36,7 @@ func.func @func1() {
 func.func private @func2()
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @func : benefit(1) {
     %0 = operands
     %1 = types
@@ -50,14 +50,14 @@ transform.with_pdl_patterns {
     rewrite %2 with "transform.dialect"
   }
 
-  sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    %0 = pdl_match @func in %arg1 : (!pdl.operation) -> !pdl.operation
-    %1 = pdl_match @return in %arg1 : (!pdl.operation) -> !pdl.operation
-    %2 = replicate num(%0) %1 : !pdl.operation, !pdl.operation
+  sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    %0 = pdl_match @func in %arg1 : (!transform.any_op) -> !transform.any_op
+    %1 = pdl_match @return in %arg1 : (!transform.any_op) -> !transform.any_op
+    %2 = replicate num(%0) %1 : !transform.any_op, !transform.any_op
     // expected-error @below {{a handle passed as operand #0 and consumed by this operation points to a payload entity more than once}}
-    test_consume_operand %2 : !pdl.operation
-    test_print_remark_at_operand %0, "remark" : !pdl.operation
+    test_consume_operand %2 : !transform.any_op
+    test_print_remark_at_operand %0, "remark" : !transform.any_op
   }
 }
 
@@ -69,14 +69,14 @@ transform.with_pdl_patterns {
 module {
 
   transform.sequence failures(propagate) {
-  ^bb0(%0: !pdl.operation):
-    %1 = transform.test_copy_payload %0
+  ^bb0(%0: !transform.any_op):
+    %1 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
     // expected-note @below {{handle to invalidated ops}}
-    %2 = transform.test_copy_payload %0
+    %2 = transform.test_copy_payload %0 : (!transform.any_op) ->!transform.any_op
     // expected-note @below {{invalidated by this transform op that consumes its operand #0}}
-    transform.test_consume_operand %1 : !pdl.operation
+    transform.test_consume_operand %1 : !transform.any_op
     // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
-    transform.test_consume_operand %2 : !pdl.operation
+    transform.test_consume_operand %2 : !transform.any_op
   }
 }
 
@@ -87,16 +87,16 @@ module {
 module {
 
   transform.sequence failures(propagate) {
-  ^bb0(%0: !pdl.operation):
-    %1 = transform.test_copy_payload %0
+  ^bb0(%0: !transform.any_op):
+    %1 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
     // expected-note @below {{handle to invalidated ops}}
-    %2 = transform.test_copy_payload %0
+    %2 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
     // Consuming two handles in the same operation is invalid if they point
     // to overlapping sets of payload IR ops.
     //
     // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
     // expected-note @below {{invalidated by this transform op that consumes its operand #0 and invalidates all handles to payload IR entities}}
-    transform.test_consume_operand %1, %2 : !pdl.operation
+    transform.test_consume_operand %1, %2 : !transform.any_op, !transform.any_op
   }
 }
 
@@ -107,10 +107,10 @@ module {
 module {
 
   transform.sequence failures(propagate) {
-  ^bb0(%0: !pdl.operation):
-    %1 = transform.test_copy_payload %0
-    %2 = transform.test_copy_payload %0
-    transform.merge_handles %1, %2 { deduplicate } : !pdl.operation
+  ^bb0(%0: !transform.any_op):
+    %1 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
+    %2 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
+    transform.merge_handles %1, %2 { deduplicate } : !transform.any_op
   }
 }
 // -----

diff  --git a/mlir/test/Dialect/Transform/multi-arg-top-level-params.mlir b/mlir/test/Dialect/Transform/multi-arg-top-level-params.mlir
index f5d7f8f595f1d..ab2873ba9dcd1 100644
--- a/mlir/test/Dialect/Transform/multi-arg-top-level-params.mlir
+++ b/mlir/test/Dialect/Transform/multi-arg-top-level-params.mlir
@@ -2,7 +2,7 @@
 // RUN:          --split-input-file --verify-diagnostics
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation, %arg1: !transform.param<i64>, %arg2: !transform.param<i64>):
+^bb0(%arg0: !transform.any_op, %arg1: !transform.param<i64>, %arg2: !transform.param<i64>):
   // expected-remark @below {{1 : i64, 2 : i64, 3 : i64}}
   transform.test_print_param %arg1 : !transform.param<i64>
   // expected-remark @below {{42 : i64, 45 : i64}}
@@ -12,7 +12,7 @@ transform.sequence failures(propagate) {
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation, %arg1: !transform.any_op, %arg2: !transform.param<i64>):
+^bb0(%arg0: !transform.any_op, %arg1: !transform.any_op, %arg2: !transform.param<i64>):
   // expected-error @above {{wrong kind of value provided for top-level operation handle}}
 }
 
@@ -20,5 +20,5 @@ transform.sequence failures(propagate) {
 
 // expected-error @below {{operation expects 3 extra value bindings, but 2 were provided to the interpreter}}
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation, %arg1: !transform.param<i64>, %arg2: !transform.param<i64>, %arg3: !transform.param<i64>):
+^bb0(%arg0: !transform.any_op, %arg1: !transform.param<i64>, %arg2: !transform.param<i64>, %arg3: !transform.param<i64>):
 }

diff  --git a/mlir/test/Dialect/Transform/ops-invalid.mlir b/mlir/test/Dialect/Transform/ops-invalid.mlir
index 988743e93ef5c..74c101f79075a 100644
--- a/mlir/test/Dialect/Transform/ops-invalid.mlir
+++ b/mlir/test/Dialect/Transform/ops-invalid.mlir
@@ -15,10 +15,10 @@ transform.sequence failures(propagate) {
 
 // expected-note @below {{nested in another possible top-level op}}
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   // expected-error @below {{expects operands to be provided for a nested op}}
   transform.sequence failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
+  ^bb1(%arg1: !transform.any_op):
   }
 }
 
@@ -34,7 +34,7 @@ transform.sequence failures(propagate) {
 
 // expected-error @below {{expected children ops to implement TransformOpInterface}}
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   // expected-note @below {{op without interface}}
   arith.constant 42.0 : f32
 }
@@ -42,8 +42,8 @@ transform.sequence failures(propagate) {
 // -----
 
 // expected-error @below {{expects the types of the terminator operands to match the types of the result}}
-%0 = transform.sequence -> !pdl.operation failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+%0 = transform.sequence -> !transform.any_op failures(propagate) {
+^bb0(%arg0: !transform.any_op):
   // expected-note @below {{terminator}}
   transform.yield
 }
@@ -54,7 +54,7 @@ transform.sequence failures(propagate) {
 ^bb0(%arg0: !transform.any_op):
   // expected-error @below {{expects the type of the block argument to match the type of the operand}}
   transform.sequence %arg0: !transform.any_op failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
+  ^bb1(%arg1: !transform.op<"builtin.module">):
     transform.yield
   }
 }
@@ -82,10 +82,10 @@ transform.sequence failures(propagate) {
 
 // expected-note @below {{nested in another possible top-level op}}
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   // expected-error @below {{expects operands to be provided for a nested op}}
   transform.sequence failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
+  ^bb1(%arg1: !transform.any_op):
   }
 }
 
@@ -93,14 +93,14 @@ transform.with_pdl_patterns {
 
 // expected-error @below {{expects only one non-pattern op in its body}}
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   // expected-note @below {{first non-pattern op}}
   transform.sequence failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
+  ^bb1(%arg1: !transform.any_op):
   }
   // expected-note @below {{second non-pattern op}}
   transform.sequence failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
+  ^bb1(%arg1: !transform.any_op):
   }
 }
 
@@ -108,7 +108,7 @@ transform.with_pdl_patterns {
 
 // expected-error @below {{expects only pattern and top-level transform ops in its body}}
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   // expected-note @below {{offending op}}
   "test.something"() : () -> ()
 }
@@ -117,10 +117,10 @@ transform.with_pdl_patterns {
 
 // expected-note @below {{parent operation}}
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
    // expected-error @below {{op cannot be nested}}
-  transform.with_pdl_patterns %arg0 : !pdl.operation {
-  ^bb1(%arg1: !pdl.operation):
+  transform.with_pdl_patterns %arg0 : !transform.any_op {
+  ^bb1(%arg1: !transform.any_op):
   }
 }
 
@@ -128,7 +128,7 @@ transform.with_pdl_patterns {
 
 // expected-error @below {{op expects at least one non-pattern op}}
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @some : benefit(1) {
     %0 = pdl.operation "test.foo"
     pdl.rewrite %0 with "transform.dialect"
@@ -138,10 +138,10 @@ transform.with_pdl_patterns {
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   // expected-error @below {{op expects at least one non-pattern op}}
-  with_pdl_patterns %arg0 : !pdl.operation {
-  ^bb1(%arg1: !pdl.operation):
+  with_pdl_patterns %arg0 : !transform.any_op {
+  ^bb1(%arg1: !transform.any_op):
   }
 }
 
@@ -155,7 +155,7 @@ transform.sequence failures(propagate) {
 
 // expected-error @below {{expects a single-block region}}
 "transform.test_transform_unrestricted_op_no_interface"() ({
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   "test.potential_terminator"() : () -> ()
 ^bb1:
   "test.potential_terminator"() : () -> ()
@@ -164,59 +164,59 @@ transform.sequence failures(propagate) {
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   // expected-error @below {{result #0 has more than one potential consumer}}
-  %0 = test_produce_self_handle_or_forward_operand
+  %0 = test_produce_self_handle_or_forward_operand : () -> !transform.any_op
   // expected-note @below {{used here as operand #0}}
-  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
   // expected-note @below {{used here as operand #0}}
-  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
 }
 
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   // expected-error @below {{result #0 has more than one potential consumer}}
-  %0 = test_produce_self_handle_or_forward_operand
+  %0 = test_produce_self_handle_or_forward_operand : () -> !transform.any_op
   // expected-note @below {{used here as operand #0}}
-  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
   // expected-note @below {{used here as operand #0}}
-  transform.sequence %0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    test_consume_operand_of_op_kind_or_fail %arg1, "transform.test_produce_self_handle_or_forward_operand"
+  transform.sequence %0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    test_consume_operand_of_op_kind_or_fail %arg1, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
   }
 }
 
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   // expected-error @below {{result #0 has more than one potential consumer}}
-  %0 = test_produce_self_handle_or_forward_operand
+  %0 = test_produce_self_handle_or_forward_operand : () -> !transform.any_op
   // expected-note @below {{used here as operand #0}}
-  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
-  transform.sequence %0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
+  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
+  transform.sequence %0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
     // expected-note @below {{used here as operand #0}}
-    test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+    test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
   }
 }
 
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   // expected-error @below {{result #0 has more than one potential consumer}}
-  %0 = test_produce_self_handle_or_forward_operand
+  %0 = test_produce_self_handle_or_forward_operand : () -> !transform.any_op
   // expected-note @below {{used here as operand #0}}
-  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
   // expected-note @below {{used here as operand #0}}
-  transform.sequence %0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    transform.sequence %arg1 : !pdl.operation failures(propagate) {
-    ^bb2(%arg2: !pdl.operation):
-      test_consume_operand_of_op_kind_or_fail %arg2, "transform.test_produce_self_handle_or_forward_operand"
+  transform.sequence %0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    transform.sequence %arg1 : !transform.any_op failures(propagate) {
+    ^bb2(%arg2: !transform.any_op):
+      test_consume_operand_of_op_kind_or_fail %arg2, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
     }
   }
 }
@@ -224,7 +224,7 @@ transform.sequence failures(propagate) {
 // -----
 
 transform.sequence failures(propagate) {
-^bb1(%arg1: !pdl.operation):
+^bb1(%arg1: !transform.any_op):
   // expected-error @below {{expects at least one region}}
   transform.alternatives
 }
@@ -232,13 +232,13 @@ transform.sequence failures(propagate) {
 // -----
 
 transform.sequence failures(propagate) {
-^bb1(%arg1: !pdl.operation):
+^bb1(%arg1: !transform.any_op):
   // expected-error @below {{expects terminator operands to have the same type as results of the operation}}
-  %2 = transform.alternatives %arg1 : !pdl.operation -> !pdl.operation {
-  ^bb2(%arg2: !pdl.operation):
-    transform.yield %arg2 : !pdl.operation
+  %2 = transform.alternatives %arg1 : !transform.any_op -> !transform.any_op {
+  ^bb2(%arg2: !transform.any_op):
+    transform.yield %arg2 : !transform.any_op
   }, {
-  ^bb2(%arg2: !pdl.operation):
+  ^bb2(%arg2: !transform.any_op):
     // expected-note @below {{terminator}}
     transform.yield
   }
@@ -255,16 +255,16 @@ transform.alternatives {
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   // expected-error @below {{result #0 has more than one potential consumer}}
-  %0 = test_produce_self_handle_or_forward_operand
+  %0 = test_produce_self_handle_or_forward_operand : () -> !transform.any_op
   // expected-note @below {{used here as operand #0}}
-  transform.foreach %0 : !pdl.operation {
-  ^bb1(%arg1: !pdl.operation):
-    transform.test_consume_operand %arg1 : !pdl.operation
+  transform.foreach %0 : !transform.any_op {
+  ^bb1(%arg1: !transform.any_op):
+    transform.test_consume_operand %arg1 : !transform.any_op
   }
   // expected-note @below {{used here as operand #0}}
-  transform.test_consume_operand %0 : !pdl.operation
+  transform.test_consume_operand %0 : !transform.any_op
 }
 
 // -----

diff  --git a/mlir/test/Dialect/Transform/ops.mlir b/mlir/test/Dialect/Transform/ops.mlir
index 0a2687da2049d..b85df428f5a8d 100644
--- a/mlir/test/Dialect/Transform/ops.mlir
+++ b/mlir/test/Dialect/Transform/ops.mlir
@@ -1,42 +1,42 @@
 // RUN: mlir-opt %s | mlir-opt | FileCheck %s
 
 // CHECK: transform.sequence
-// CHECK: ^{{.+}}(%{{.+}}: !pdl.operation):
+// CHECK: ^{{.+}}(%{{.+}}: !transform.any_op):
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
-  // CHECK: sequence %{{.+}} : !pdl.operation
-  // CHECK: ^{{.+}}(%{{.+}}: !pdl.operation):
-  sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
+  // CHECK: sequence %{{.+}} : !transform.any_op
+  // CHECK: ^{{.+}}(%{{.+}}: !transform.any_op):
+  sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
   }
 }
 
 // CHECK: transform.with_pdl_patterns
-// CHECK: ^{{.+}}(%[[ARG:.+]]: !pdl.operation):
+// CHECK: ^{{.+}}(%[[ARG:.+]]: !transform.any_op):
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
-  // CHECK: sequence %[[ARG]] : !pdl.operation
-  sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
+  // CHECK: sequence %[[ARG]] : !transform.any_op
+  sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
   }
 }
 
 // Using the same value multiple times without consuming it is fine.
 // CHECK: transform.sequence
-// CHECK: %[[V:.+]] = sequence %{{.*}} : !pdl.operation -> !pdl.operation
+// CHECK: %[[V:.+]] = sequence %{{.*}} : !transform.any_op -> !transform.any_op
 // CHECK: sequence %[[V]]
 // CHECK: sequence %[[V]]
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
-  %0 = transform.sequence %arg0 : !pdl.operation -> !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    yield %arg1 : !pdl.operation
+^bb0(%arg0: !transform.any_op):
+  %0 = transform.sequence %arg0 : !transform.any_op -> !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    yield %arg1 : !transform.any_op
   }
-  transform.sequence %0 : !pdl.operation failures(propagate) {
-  ^bb2(%arg2: !pdl.operation):
+  transform.sequence %0 : !transform.any_op failures(propagate) {
+  ^bb2(%arg2: !transform.any_op):
   }
-  transform.sequence %0 : !pdl.operation failures(propagate) {
-  ^bb3(%arg3: !pdl.operation):
+  transform.sequence %0 : !transform.any_op failures(propagate) {
+  ^bb3(%arg3: !transform.any_op):
   }
 }
 
@@ -70,17 +70,17 @@ transform.sequence failures(propagate) {
 // CHECK: transform.sequence
 // CHECK: foreach
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
-  transform.foreach %arg0 : !pdl.operation {
-  ^bb1(%arg1: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
+  transform.foreach %arg0 : !transform.any_op {
+  ^bb1(%arg1: !transform.any_op):
   }
 }
 
 // CHECK: transform.sequence
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
-  // CHECK: cast %{{.*}} : !pdl.operation to !transform.any_op
-  %0 = cast %arg0: !pdl.operation to !transform.any_op
+^bb0(%arg0: !transform.any_op):
+  // CHECK: cast %{{.*}} : !transform.any_op to !transform.any_op
+  %0 = cast %arg0: !transform.any_op to !transform.any_op
   // CHECK: cast %{{.*}} : !transform.any_op to !transform.op<"builtin.module">
   %1 = cast %0: !transform.any_op to !transform.op<"builtin.module">
 }
@@ -91,9 +91,9 @@ transform.sequence failures(propagate) {
 // CHECK: print
 // CHECK: print
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
-  transform.print %arg0 : !pdl.operation
+^bb0(%arg0: !transform.any_op):
+  transform.print %arg0 : !transform.any_op
   transform.print
-  transform.print %arg0 {name = "test"} : !pdl.operation
+  transform.print %arg0 {name = "test"} : !transform.any_op
   transform.print {name = "test"}
 }

diff  --git a/mlir/test/Dialect/Transform/test-dialect-injection.mlir b/mlir/test/Dialect/Transform/test-dialect-injection.mlir
index 5bbda8e1fe991..400ee8e6c7b8b 100644
--- a/mlir/test/Dialect/Transform/test-dialect-injection.mlir
+++ b/mlir/test/Dialect/Transform/test-dialect-injection.mlir
@@ -7,11 +7,11 @@
 transform.test_transform_op
 
 // CHECK: = transform.test_produce_self_handle_or_forward_operand {foo = "bar"}
-%0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" }
+%0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" } : () -> !transform.any_op
 
 // CHECK: transform.test_consume_operand_of_op_kind_or_fail %{{.*}},
-transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
 
 // Ensure that the extension type is roundtripped correctly.
-// CHECK: transform.cast %{{.*}} : !pdl.operation to !transform.test_dialect_op
-%1 = transform.cast %0: !pdl.operation to !transform.test_dialect_op
+// CHECK: transform.cast %{{.*}} : !transform.any_op to !transform.test_dialect_op
+%1 = transform.cast %0: !transform.any_op to !transform.test_dialect_op

diff  --git a/mlir/test/Dialect/Transform/test-interpreter.mlir b/mlir/test/Dialect/Transform/test-interpreter.mlir
index bb56bcdd239d0..22a06de393e94 100644
--- a/mlir/test/Dialect/Transform/test-interpreter.mlir
+++ b/mlir/test/Dialect/Transform/test-interpreter.mlir
@@ -10,18 +10,18 @@ transform.sequence failures(propagate) {
 
 transform.sequence failures(propagate) {
 ^bb0(%arg0: !transform.any_op):
-  %0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" }
+  %0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" } : () -> !transform.any_op
   // expected-remark @below {{succeeded}}
-  transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+  transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
 }
 
 // -----
 
 transform.sequence failures(propagate) {
 ^bb0(%arg0: !transform.any_op):
-  %0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" }
+  %0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" } : () -> !transform.any_op
   // expected-error @below {{expected the operand to be associated a payload op of kind transform.sequence got transform.test_produce_self_handle_or_forward_operand}}
-  transform.test_consume_operand_of_op_kind_or_fail %0, "transform.sequence"
+  transform.test_consume_operand_of_op_kind_or_fail %0, "transform.sequence" : !transform.any_op
 }
 
 // -----
@@ -31,18 +31,18 @@ transform.sequence failures(propagate) {
 // to detect double-consumption.
 transform.sequence failures(propagate) {
 ^bb0(%arg0: !transform.any_op):
-  %0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" }
-  %1 = transform.test_copy_payload %0
+  %0 = transform.test_produce_self_handle_or_forward_operand { foo = "bar" } : () -> !transform.any_op
+  %1 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
   // expected-remark @below {{succeeded}}
-  transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+  transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
 }
 
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
-  sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
+  sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
     // expected-remark @below {{applying transformation "a"}}
     test_transform_op "a"
     // expected-remark @below {{applying transformation "b"}}
@@ -59,36 +59,36 @@ transform.sequence failures(propagate) {
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
-  %0 = test_produce_self_handle_or_forward_operand
-  sequence %0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
+  %0 = test_produce_self_handle_or_forward_operand : () -> !transform.any_op
+  sequence %0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
     // expected-remark @below {{succeeded}}
-    test_consume_operand_of_op_kind_or_fail %arg1, "transform.test_produce_self_handle_or_forward_operand"
+    test_consume_operand_of_op_kind_or_fail %arg1, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
   }
 }
 
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
-  %0 = sequence %arg0 : !pdl.operation -> !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
-    %1 = test_produce_self_handle_or_forward_operand
-    yield %1 : !pdl.operation
+^bb0(%arg0: !transform.any_op):
+  %0 = sequence %arg0 : !transform.any_op -> !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
+    %1 = test_produce_self_handle_or_forward_operand : () -> !transform.any_op
+    yield %1 : !transform.any_op
   }
   // expected-remark @below {{succeeded}}
-  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+  test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
 }
 
 // -----
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
-  sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
-    %0 = pdl_match @some in %arg1 : (!pdl.operation) -> !pdl.operation
-    test_print_remark_at_operand %0, "matched" : !pdl.operation
+^bb0(%arg0: !transform.any_op):
+  sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
+    %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
+    test_print_remark_at_operand %0, "matched" : !transform.any_op
   }
 
   pdl.pattern @some : benefit(1) {
@@ -124,18 +124,18 @@ func.func @bar() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @const : benefit(1) {
     %r = pdl.types
     %0 = pdl.operation "arith.constant" -> (%r : !pdl.range<type>)
     pdl.rewrite %0 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    %f = pdl_match @const in %arg1 : (!pdl.operation) -> !pdl.operation
-    %m = get_closest_isolated_parent %f : (!pdl.operation) -> !pdl.operation
-    test_print_remark_at_operand %m, "parent function" : !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    %f = pdl_match @const in %arg1 : (!transform.any_op) -> !transform.any_op
+    %m = get_closest_isolated_parent %f : (!transform.any_op) -> !transform.any_op
+    test_print_remark_at_operand %m, "parent function" : !transform.any_op
   }
 }
 
@@ -147,7 +147,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @match_func : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -155,22 +155,22 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
     // This is necessary to run the transformation on something other than the
     // top-level module, "alternatives" cannot be run on that.
-    %0 = pdl_match @match_func in %arg1 : (!pdl.operation) -> !pdl.operation
-    transform.alternatives %0 : !pdl.operation {
-    ^bb2(%arg2: !pdl.operation):
-      %1 = transform.test_produce_self_handle_or_forward_operand
+    %0 = pdl_match @match_func in %arg1 : (!transform.any_op) -> !transform.any_op
+    transform.alternatives %0 : !transform.any_op {
+    ^bb2(%arg2: !transform.any_op):
+      %1 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
       // This operation fails, which triggers the next alternative without
       // reporting the error.
-      transform.test_consume_operand_of_op_kind_or_fail %1, "transform.sequence"
+      transform.test_consume_operand_of_op_kind_or_fail %1, "transform.sequence" : !transform.any_op
     }, {
-    ^bb2(%arg2: !pdl.operation):
-      %1 = transform.test_produce_self_handle_or_forward_operand
+    ^bb2(%arg2: !transform.any_op):
+      %1 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
       // expected-remark @below {{succeeded}}
-      transform.test_consume_operand_of_op_kind_or_fail %1, "transform.test_produce_self_handle_or_forward_operand"
+      transform.test_consume_operand_of_op_kind_or_fail %1, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
     }
   }
 }
@@ -185,7 +185,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @match_call : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -193,16 +193,16 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    %0 = pdl_match @match_call in %arg1 : (!pdl.operation) -> !pdl.operation
-    %1 = get_closest_isolated_parent %0 : (!pdl.operation) -> !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    %0 = pdl_match @match_call in %arg1 : (!transform.any_op) -> !transform.any_op
+    %1 = get_closest_isolated_parent %0 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{all alternatives failed}}
-    transform.alternatives %1 : !pdl.operation {
-    ^bb2(%arg2: !pdl.operation):
-      %2 = transform.pdl_match @match_call in %arg2 : (!pdl.operation) -> !pdl.operation
+    transform.alternatives %1 : !transform.any_op {
+    ^bb2(%arg2: !transform.any_op):
+      %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
       // expected-remark @below {{applying}}
-      transform.test_emit_remark_and_erase_operand %2, "applying" {fail_after_erase}
+      transform.test_emit_remark_and_erase_operand %2, "applying" {fail_after_erase} : !transform.any_op
     }
   }
 }
@@ -218,7 +218,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @match_call : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -226,25 +226,25 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    %0 = pdl_match @match_call in %arg1 : (!pdl.operation) -> !pdl.operation
-    %1 = get_closest_isolated_parent %0 : (!pdl.operation) -> !pdl.operation
-    transform.alternatives %1 : !pdl.operation {
-    ^bb2(%arg2: !pdl.operation):
-      %2 = transform.pdl_match @match_call in %arg2 : (!pdl.operation) -> !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    %0 = pdl_match @match_call in %arg1 : (!transform.any_op) -> !transform.any_op
+    %1 = get_closest_isolated_parent %0 : (!transform.any_op) -> !transform.any_op
+    transform.alternatives %1 : !transform.any_op {
+    ^bb2(%arg2: !transform.any_op):
+      %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
       // expected-remark @below {{applying}}
-      transform.test_emit_remark_and_erase_operand %2, "applying" {fail_after_erase}
+      transform.test_emit_remark_and_erase_operand %2, "applying" {fail_after_erase} : !transform.any_op
     }, {
-    ^bb2(%arg2: !pdl.operation):
-      %2 = transform.pdl_match @match_call in %arg2 : (!pdl.operation) -> !pdl.operation
-      transform.test_print_remark_at_operand %2, "still here" : !pdl.operation
+    ^bb2(%arg2: !transform.any_op):
+      %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
+      transform.test_print_remark_at_operand %2, "still here" : !transform.any_op
       // This alternative succeeds.
     }, {
-    ^bb2(%arg2: !pdl.operation):
+    ^bb2(%arg2: !transform.any_op):
       // This alternative is never run, so we must not have a remark here.
-      %2 = transform.pdl_match @match_call in %arg2 : (!pdl.operation) -> !pdl.operation
-      transform.test_emit_remark_and_erase_operand %2, "should not happen" {fail_after_erase}
+      %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
+      transform.test_emit_remark_and_erase_operand %2, "should not happen" {fail_after_erase} : !transform.any_op
     }
   }
 }
@@ -259,7 +259,7 @@ func.func @erase_call() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @match_call : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -267,20 +267,20 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    %0 = pdl_match @match_call in %arg1 : (!pdl.operation) -> !pdl.operation
-    %1 = get_closest_isolated_parent %0 : (!pdl.operation) -> !pdl.operation
-    transform.alternatives %1 : !pdl.operation {
-    ^bb2(%arg2: !pdl.operation):
-      %2 = transform.pdl_match @match_call in %arg2 : (!pdl.operation) -> !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    %0 = pdl_match @match_call in %arg1 : (!transform.any_op) -> !transform.any_op
+    %1 = get_closest_isolated_parent %0 : (!transform.any_op) -> !transform.any_op
+    transform.alternatives %1 : !transform.any_op {
+    ^bb2(%arg2: !transform.any_op):
+      %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
       // expected-remark @below {{applying}}
-      transform.test_emit_remark_and_erase_operand %2, "applying" {fail_after_erase}
+      transform.test_emit_remark_and_erase_operand %2, "applying" {fail_after_erase} : !transform.any_op
     }, {
-    ^bb2(%arg2: !pdl.operation):
-      %2 = transform.pdl_match @match_call in %arg2 : (!pdl.operation) -> !pdl.operation
+    ^bb2(%arg2: !transform.any_op):
+      %2 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
       // expected-remark @below {{applying second time}}
-      transform.test_emit_remark_and_erase_operand %2, "applying second time"
+      transform.test_emit_remark_and_erase_operand %2, "applying second time" : !transform.any_op
     }
   }
 }
@@ -295,7 +295,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @match_call : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -303,27 +303,27 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    %0 = pdl_match @match_call in %arg1 : (!pdl.operation) -> !pdl.operation
-    %1 = get_closest_isolated_parent %0 : (!pdl.operation) -> !pdl.operation
-    %2 = transform.alternatives %1 : !pdl.operation -> !pdl.operation {
-    ^bb2(%arg2: !pdl.operation):
-      %3 = transform.pdl_match @match_call in %arg2 : (!pdl.operation) -> !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    %0 = pdl_match @match_call in %arg1 : (!transform.any_op) -> !transform.any_op
+    %1 = get_closest_isolated_parent %0 : (!transform.any_op) -> !transform.any_op
+    %2 = transform.alternatives %1 : !transform.any_op -> !transform.any_op {
+    ^bb2(%arg2: !transform.any_op):
+      %3 = transform.pdl_match @match_call in %arg2 : (!transform.any_op) -> !transform.any_op
       // expected-remark @below {{applying}}
-      transform.test_emit_remark_and_erase_operand %3, "applying" {fail_after_erase}
-      %4 = transform.test_produce_self_handle_or_forward_operand %3
-      transform.yield %4 : !pdl.operation
+      transform.test_emit_remark_and_erase_operand %3, "applying" {fail_after_erase} : !transform.any_op
+      %4 = transform.test_produce_self_handle_or_forward_operand %3 : (!transform.any_op) -> !transform.any_op
+      transform.yield %4 : !transform.any_op
     }, {
-    ^bb2(%arg2: !pdl.operation):
-      %4 = transform.test_produce_self_handle_or_forward_operand
-      transform.yield %4 : !pdl.operation
+    ^bb2(%arg2: !transform.any_op):
+      %4 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
+      transform.yield %4 : !transform.any_op
     }
     // The first alternative failed, so the returned value is taken from the
     // second alternative, associated test_produce_self_handle_or_forward_operand rather
     // than pdl_match.
     // expected-remark @below {{succeeded}}
-    transform.test_consume_operand_of_op_kind_or_fail %2, "transform.test_produce_self_handle_or_forward_operand"
+    transform.test_consume_operand_of_op_kind_or_fail %2, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
   }
 }
 
@@ -343,16 +343,16 @@ module {
   }
 
   transform.sequence failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
+  ^bb1(%arg1: !transform.any_op):
     // expected-error @below {{scope must not contain the transforms being applied}}
-    transform.alternatives %arg1 : !pdl.operation {
-    ^bb2(%arg2: !pdl.operation):
-      %0 = transform.test_produce_self_handle_or_forward_operand
-      transform.test_consume_operand_of_op_kind_or_fail %0, "transform.sequence"
+    transform.alternatives %arg1 : !transform.any_op {
+    ^bb2(%arg2: !transform.any_op):
+      %0 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
+      transform.test_consume_operand_of_op_kind_or_fail %0, "transform.sequence" : !transform.any_op
     }, {
-    ^bb2(%arg2: !pdl.operation):
-      %0 = transform.test_produce_self_handle_or_forward_operand
-      transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand"
+    ^bb2(%arg2: !transform.any_op):
+      %0 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
+      transform.test_consume_operand_of_op_kind_or_fail %0, "transform.test_produce_self_handle_or_forward_operand" : !transform.any_op
     }
   }
 }
@@ -368,7 +368,7 @@ func.func @foo(%arg0: index, %arg1: index, %arg2: index) {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @match_const : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -377,13 +377,13 @@ transform.with_pdl_patterns {
   }
 
 
-  sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    %0 = transform.pdl_match @match_const in %arg1 : (!pdl.operation) -> !pdl.operation
-    %1 = transform.loop.get_parent_for %0 : (!pdl.operation) -> !pdl.operation
+  sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    %0 = transform.pdl_match @match_const in %arg1 : (!transform.any_op) -> !transform.any_op
+    %1 = transform.loop.get_parent_for %0 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{only isolated-from-above ops can be alternative scopes}}
-    alternatives %1 : !pdl.operation {
-    ^bb2(%arg2: !pdl.operation):
+    alternatives %1 : !transform.any_op {
+    ^bb2(%arg2: !transform.any_op):
     }
   }
 }
@@ -396,7 +396,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @some : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -404,12 +404,12 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
-    %0 = pdl_match @some in %arg1 : (!pdl.operation) -> !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
+    %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{application of transform.test_wrong_number_of_results expected to produce 3 results (actually produced 1).}}
     // expected-note @below {{if you need variadic results, consider a generic `apply` instead of the specialized `applyToOne`.}}
-    transform.test_wrong_number_of_results %0
+    transform.test_wrong_number_of_results %0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op)
   }
 }
 
@@ -423,7 +423,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @some : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -431,12 +431,12 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
-    %0 = pdl_match @some in %arg1 : (!pdl.operation) -> !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
+    %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{application of transform.test_wrong_number_of_multi_results expected to produce 1 results (actually produced 0)}}
     // expected-note @below {{if you need variadic results, consider a generic `apply` instead of the specialized `applyToOne`.}}
-    transform.test_wrong_number_of_multi_results %0
+    transform.test_wrong_number_of_multi_results %0 : (!transform.any_op) -> (!transform.any_op)
   }
 }
 
@@ -450,7 +450,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @some : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -458,11 +458,11 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
-    %0 = pdl_match @some in %arg1 : (!pdl.operation) -> !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
+    %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
     // Transform matches 3 ops and produces 2 results.
-    %1:2 = transform.test_correct_number_of_multi_results %0
+    %1:2 = transform.test_correct_number_of_multi_results %0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
   }
 }
 
@@ -474,7 +474,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @some : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -482,11 +482,11 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
-    %0 = pdl_match @some in %arg1 : (!pdl.operation) -> !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
+    %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
     // Transform fails to match any but still produces 2 results.
-    %1:2 = transform.test_correct_number_of_multi_results %0
+    %1:2 = transform.test_correct_number_of_multi_results %0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
   }
 }
 
@@ -500,7 +500,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @some : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -508,10 +508,10 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
-    %0 = pdl_match @some in %arg1 : (!pdl.operation) -> !pdl.operation
-    transform.test_mixed_null_and_non_null_results %0
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
+    %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
+    transform.test_mixed_null_and_non_null_results %0 : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
   }
 }
 
@@ -530,7 +530,7 @@ func.func @foo(%arg0: index) {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @addi : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -544,12 +544,12 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
-    %0 = pdl_match @addi in %arg1 : (!pdl.operation) -> !pdl.operation
-    %1 = pdl_match @subi in %arg1 : (!pdl.operation) -> !pdl.operation
-    %2 = merge_handles %0, %1 : !pdl.operation
-    test_print_remark_at_operand %2, "matched" : !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
+    %0 = pdl_match @addi in %arg1 : (!transform.any_op) -> !transform.any_op
+    %1 = pdl_match @subi in %arg1 : (!transform.any_op) -> !transform.any_op
+    %2 = merge_handles %0, %1 : !transform.any_op
+    test_print_remark_at_operand %2, "matched" : !transform.any_op
   }
 }
 
@@ -563,7 +563,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @some : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -571,11 +571,11 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
-    %0 = pdl_match @some in %arg1 : (!pdl.operation) -> !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
+    %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{failed to apply}}
-    transform.test_mixed_sucess_and_silenceable %0
+    transform.test_mixed_success_and_silenceable %0 : !transform.any_op
   }
 }
 
@@ -587,7 +587,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @some : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -595,12 +595,12 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(suppress) {
-  ^bb0(%arg1: !pdl.operation):
-    %0 = pdl_match @some in %arg1 : (!pdl.operation) -> !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(suppress) {
+  ^bb0(%arg1: !transform.any_op):
+    %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
     // Not expecting error here because we are suppressing it.
     // expected-remark @below {{foo}}
-    test_emit_remark_and_erase_operand %0, "foo" {fail_after_erase}
+    test_emit_remark_and_erase_operand %0, "foo" {fail_after_erase} : !transform.any_op
   }
 }
 
@@ -612,7 +612,7 @@ func.func @foo() {
 }
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @some : benefit(1) {
     %0 = pdl.operands
     %1 = pdl.types
@@ -620,12 +620,12 @@ transform.with_pdl_patterns {
     pdl.rewrite %2 with "transform.dialect"
   }
 
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
-    %0 = pdl_match @some in %arg1 : (!pdl.operation) -> !pdl.operation
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
+    %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{silenceable error}}
     // expected-remark @below {{foo}}
-    test_emit_remark_and_erase_operand %0, "foo" {fail_after_erase}
+    test_emit_remark_and_erase_operand %0, "foo" {fail_after_erase} : !transform.any_op
   }
 }
 
@@ -747,10 +747,10 @@ func.func @get_parent_for_op_no_loop(%arg0: index, %arg1: index) {
 }
 
 transform.sequence failures(propagate) {
-^bb1(%arg1: !pdl.operation):
-  %addi = transform.structured.match ops{["arith.addi"]} in %arg1 : (!pdl.operation) -> !pdl.operation
-  %muli = get_producer_of_operand %addi[0] : (!pdl.operation) -> !pdl.operation
-  transform.test_print_remark_at_operand %muli, "found muli" : !pdl.operation
+^bb1(%arg1: !transform.any_op):
+  %addi = transform.structured.match ops{["arith.addi"]} in %arg1 : (!transform.any_op) -> !transform.any_op
+  %muli = get_producer_of_operand %addi[0] : (!transform.any_op) -> !transform.any_op
+  transform.test_print_remark_at_operand %muli, "found muli" : !transform.any_op
 }
 
 // -----
@@ -762,10 +762,10 @@ func.func @get_parent_for_op_no_loop(%arg0: index, %arg1: index) {
 }
 
 transform.sequence failures(propagate) {
-^bb1(%arg1: !pdl.operation):
-  %muli = transform.structured.match ops{["arith.muli"]} in %arg1 : (!pdl.operation) -> !pdl.operation
+^bb1(%arg1: !transform.any_op):
+  %muli = transform.structured.match ops{["arith.muli"]} in %arg1 : (!transform.any_op) -> !transform.any_op
   // expected-error @below {{could not find a producer for operand number: 0 of}}
-  %bbarg = get_producer_of_operand %muli[0] : (!pdl.operation) -> !pdl.operation
+  %bbarg = get_producer_of_operand %muli[0] : (!transform.any_op) -> !transform.any_op
 
 }
 
@@ -779,10 +779,10 @@ func.func @get_consumer(%arg0: index, %arg1: index) {
 }
 
 transform.sequence failures(propagate) {
-^bb1(%arg1: !pdl.operation):
-  %muli = transform.structured.match ops{["arith.muli"]} in %arg1 : (!pdl.operation) -> !pdl.operation
-  %addi = get_consumers_of_result %muli[0] : (!pdl.operation) -> !pdl.operation
-  transform.test_print_remark_at_operand %addi, "found addi" : !pdl.operation
+^bb1(%arg1: !transform.any_op):
+  %muli = transform.structured.match ops{["arith.muli"]} in %arg1 : (!transform.any_op) -> !transform.any_op
+  %addi = get_consumers_of_result %muli[0] : (!transform.any_op) -> !transform.any_op
+  transform.test_print_remark_at_operand %addi, "found addi" : !transform.any_op
 }
 
 // -----
@@ -794,10 +794,10 @@ func.func @get_consumer_fail_1(%arg0: index, %arg1: index) {
 }
 
 transform.sequence failures(propagate) {
-^bb1(%arg1: !pdl.operation):
-  %muli = transform.structured.match ops{["arith.muli"]} in %arg1 : (!pdl.operation) -> !pdl.operation
+^bb1(%arg1: !transform.any_op):
+  %muli = transform.structured.match ops{["arith.muli"]} in %arg1 : (!transform.any_op) -> !transform.any_op
   // expected-error @below {{handle must be mapped to exactly one payload op}}
-  %bbarg = get_consumers_of_result %muli[0] : (!pdl.operation) -> !pdl.operation
+  %bbarg = get_consumers_of_result %muli[0] : (!transform.any_op) -> !transform.any_op
 
 }
 
@@ -809,10 +809,10 @@ func.func @get_consumer_fail_2(%arg0: index, %arg1: index) {
 }
 
 transform.sequence failures(propagate) {
-^bb1(%arg1: !pdl.operation):
-  %muli = transform.structured.match ops{["arith.muli"]} in %arg1 : (!pdl.operation) -> !pdl.operation
+^bb1(%arg1: !transform.any_op):
+  %muli = transform.structured.match ops{["arith.muli"]} in %arg1 : (!transform.any_op) -> !transform.any_op
   // expected-error @below {{result number overflow}}
-  %bbarg = get_consumers_of_result %muli[1] : (!pdl.operation) -> !pdl.operation
+  %bbarg = get_consumers_of_result %muli[1] : (!transform.any_op) -> !transform.any_op
 
 }
 
@@ -923,18 +923,18 @@ transform.with_pdl_patterns {
 "other_dialect.other_op"() : () -> ()
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @other : benefit(1) {
     %0 = pdl.operation "other_dialect.other_op"
     pdl.rewrite %0 with "transform.dialect"
   }
 
-  sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    %0 = pdl_match @other in %arg1 : (!pdl.operation) -> !pdl.operation
+  sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    %0 = pdl_match @other in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{expected the payload operation to belong to the 'test' dialect}}
-    %2 = transform.cast %0 : !pdl.operation to !transform.test_dialect_op
-    transform.cast %2 : !transform.test_dialect_op to !pdl.operation
+    %2 = transform.cast %0 : !transform.any_op to !transform.test_dialect_op
+    transform.cast %2 : !transform.test_dialect_op to !transform.any_op
   }
 }
 
@@ -944,17 +944,17 @@ transform.with_pdl_patterns {
 "other_dialect.other_op"() : () -> ()
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @some : benefit(1) {
     %0 = pdl.operation "test.some_op"
     pdl.rewrite %0 with "transform.dialect"
   }
 
-  sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    %0 = pdl_match @some in %arg1 : (!pdl.operation) -> !pdl.operation
-    %2 = transform.cast %0 : !pdl.operation to !transform.op<"test.some_op">
-    transform.cast %2 : !transform.op<"test.some_op"> to !pdl.operation
+  sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
+    %2 = transform.cast %0 : !transform.any_op to !transform.op<"test.some_op">
+    transform.cast %2 : !transform.op<"test.some_op"> to !transform.any_op
   }
 }
 
@@ -965,36 +965,36 @@ transform.with_pdl_patterns {
 "other_dialect.other_op"() : () -> ()
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   pdl.pattern @other : benefit(1) {
     %0 = pdl.operation "other_dialect.other_op"
     pdl.rewrite %0 with "transform.dialect"
   }
 
-  sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb1(%arg1: !pdl.operation):
-    %0 = pdl_match @other in %arg1 : (!pdl.operation) -> !pdl.operation
+  sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb1(%arg1: !transform.any_op):
+    %0 = pdl_match @other in %arg1 : (!transform.any_op) -> !transform.any_op
     // expected-error @below {{incompatible payload operation name}}
-    %2 = transform.cast %0 : !pdl.operation to !transform.op<"test.some_op">
-    transform.cast %2 : !transform.op<"test.some_op"> to !pdl.operation
+    %2 = transform.cast %0 : !transform.any_op to !transform.op<"test.some_op">
+    transform.cast %2 : !transform.op<"test.some_op"> to !transform.any_op
   }
 }
 
 // -----
 
 transform.with_pdl_patterns {
-^bb0(%arg0: !pdl.operation):
-  transform.sequence %arg0 : !pdl.operation failures(propagate) {
-  ^bb0(%arg1: !pdl.operation):
-    %0 = pdl_match @some in %arg1 : (!pdl.operation) -> !pdl.operation
+^bb0(%arg0: !transform.any_op):
+  transform.sequence %arg0 : !transform.any_op failures(propagate) {
+  ^bb0(%arg1: !transform.any_op):
+    %0 = pdl_match @some in %arg1 : (!transform.any_op) -> !transform.any_op
     // here, the handles nested under are {%arg0, %arg1, %0}
     // expected-remark @below {{3 handles nested under}}
-    transform.test_report_number_of_tracked_handles_nested_under %arg1
+    transform.test_report_number_of_tracked_handles_nested_under %arg1 : !transform.any_op
     // expected-remark @below {{erased}}
-    transform.test_emit_remark_and_erase_operand %0, "erased"
+    transform.test_emit_remark_and_erase_operand %0, "erased" : !transform.any_op
     // here, the handles nested under are only {%arg0, %arg1}
     // expected-remark @below {{2 handles nested under}}
-    transform.test_report_number_of_tracked_handles_nested_under %arg1
+    transform.test_report_number_of_tracked_handles_nested_under %arg1 : !transform.any_op
   }
 
   pdl.pattern @some : benefit(1) {
@@ -1065,9 +1065,9 @@ transform.sequence failures(propagate) {
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
-  %0 = transform.structured.match ops{["func.func"]} in %arg0 : (!pdl.operation) -> !pdl.operation
-  %1 = transform.test_produce_param_with_number_of_test_ops %0 : !pdl.operation
+^bb0(%arg0: !transform.any_op):
+  %0 = transform.structured.match ops{["func.func"]} in %arg0 : (!transform.any_op) -> !transform.any_op
+  %1 = transform.test_produce_param_with_number_of_test_ops %0 : !transform.any_op
   // expected-remark @below {{1 : i32, 3 : i32}}
   transform.test_print_param %1 : !transform.test_dialect_param
   %2 = transform.test_add_to_param %1, 100

diff  --git a/mlir/test/Dialect/Transform/transform-state-extension.mlir b/mlir/test/Dialect/Transform/transform-state-extension.mlir
index 76cd1acf34493..a26293fbe51ca 100644
--- a/mlir/test/Dialect/Transform/transform-state-extension.mlir
+++ b/mlir/test/Dialect/Transform/transform-state-extension.mlir
@@ -3,15 +3,15 @@
 // expected-note @below {{associated payload op}}
 module {
   transform.sequence failures(propagate) {
-  ^bb0(%arg0: !pdl.operation):
+  ^bb0(%arg0: !transform.any_op):
     // expected-remark @below {{extension absent}}
-    test_check_if_test_extension_present %arg0
+    test_check_if_test_extension_present %arg0 : !transform.any_op
     test_add_test_extension "A"
     // expected-remark @below {{extension present, A}}
-    test_check_if_test_extension_present %arg0
+    test_check_if_test_extension_present %arg0 : !transform.any_op
     test_remove_test_extension
     // expected-remark @below {{extension absent}}
-    test_check_if_test_extension_present %arg0
+    test_check_if_test_extension_present %arg0 : !transform.any_op
   }
 }
 
@@ -20,12 +20,12 @@ module {
 // expected-note @below {{associated payload op}}
 module {
   transform.sequence failures(propagate) {
-  ^bb0(%arg0: !pdl.operation):
+  ^bb0(%arg0: !transform.any_op):
     test_add_test_extension "A"
     test_remove_test_extension
     test_add_test_extension "B"
     // expected-remark @below {{extension present, B}}
-    test_check_if_test_extension_present %arg0
+    test_check_if_test_extension_present %arg0 : !transform.any_op
   }
 }
 
@@ -34,56 +34,56 @@ module {
 // expected-note @below {{associated payload op}}
 module {
   transform.sequence failures(propagate) {
-  ^bb0(%arg0: !pdl.operation):
+  ^bb0(%arg0: !transform.any_op):
     test_add_test_extension "A"
     // expected-remark @below {{extension present, A}}
-    test_check_if_test_extension_present %arg0
+    test_check_if_test_extension_present %arg0 : !transform.any_op
     // expected-note @below {{associated payload op}}
-    test_remap_operand_to_self %arg0
+    test_remap_operand_to_self %arg0 : (!transform.any_op) -> !transform.any_op
     // expected-remark @below {{extension present, A}}
-    test_check_if_test_extension_present %arg0
+    test_check_if_test_extension_present %arg0 : !transform.any_op
   }
 }
 
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   test_add_test_extension "A"
    // This is okay because we are replacing the top-level module operation
    // (0 results) with this operation that has _more_ (1) results.
-  %dummy = test_remap_operand_to_self %arg0 : !pdl.operation
+  %dummy = test_remap_operand_to_self %arg0 : (!transform.any_op) -> !transform.any_op
 }
 
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   test_add_test_extension "A"
-  %dummy = test_remap_operand_to_self %arg0 : !pdl.operation
+  %dummy = test_remap_operand_to_self %arg0 : (!transform.any_op) -> !transform.any_op
   // This is still okay. Even though we are replacing the previous
   // operation with (1 result) with this operation that has less (0) results,
   // there is no handle to the result, hence no issue with value handle update.
-  test_remap_operand_to_self %dummy
+  test_remap_operand_to_self %dummy : (!transform.any_op) -> !transform.any_op
 }
 
 // -----
 
 transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
+^bb0(%arg0: !transform.any_op):
   test_add_test_extension "A"
   // expected-error @below {{cannot replace an op with another op producing fewer results while tracking handles}}
-  %dummy = test_remap_operand_to_self %arg0 : !pdl.operation
-  %valuehandle = transform.get_result %dummy[0] : (!pdl.operation) -> !transform.any_value
-  test_remap_operand_to_self %dummy
+  %dummy = test_remap_operand_to_self %arg0 : (!transform.any_op) -> !transform.any_op
+  %valuehandle = transform.get_result %dummy[0] : (!transform.any_op) -> !transform.any_value
+  test_remap_operand_to_self %dummy : (!transform.any_op) -> ()
 }
 
 // -----
 
 module {
   transform.sequence failures(suppress) {
-  ^bb0(%arg0: !pdl.operation):
+  ^bb0(%arg0: !transform.any_op):
     // expected-error @below {{TestTransformStateExtension missing}}
-    test_remap_operand_to_self %arg0
+    test_remap_operand_to_self %arg0 : (!transform.any_op) -> !transform.any_op
   }
 }

diff  --git a/mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td b/mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td
index 3848ff6b0587c..3e81125e2cda1 100644
--- a/mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td
+++ b/mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.td
@@ -44,9 +44,10 @@ def TestProduceSelfHandleOrForwardOperandOp
   : Op<Transform_Dialect, "test_produce_self_handle_or_forward_operand",
        [DeclareOpInterfaceMethods<TransformOpInterface>,
         DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
-  let arguments = (ins Optional<PDL_Operation>:$operand);
-  let results = (outs PDL_Operation:$res);
-  let assemblyFormat = "($operand^)? attr-dict";
+  let arguments = (ins Optional<TransformHandleTypeInterface>:$operand);
+  let results = (outs TransformHandleTypeInterface:$res);
+  let assemblyFormat =
+      "($operand^)? attr-dict `:` functional-type($operand, $res)";
   let cppNamespace = "::mlir::test";
 }
 
@@ -100,8 +101,10 @@ def TestConsumeOperand : Op<Transform_Dialect, "test_consume_operand",
       DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
   let arguments = (ins
     Transform_AnyHandleOrParamType:$operand,
-    Optional<PDL_Operation>:$second_operand);
-  let assemblyFormat = "$operand (`,` $second_operand^)? attr-dict `:` type($operand)";
+    Optional<TransformHandleTypeInterface>:$second_operand);
+  let assemblyFormat = 
+      "$operand (`,` $second_operand^)? attr-dict `:` type($operand)"
+      "(`,` type($second_operand)^)?";
   let cppNamespace = "::mlir::test";
 }
 
@@ -110,9 +113,10 @@ def TestConsumeOperandOfOpKindOrFail
        [DeclareOpInterfaceMethods<TransformOpInterface>,
         DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
   let arguments = (ins
-    PDL_Operation:$operand,
+    TransformHandleTypeInterface:$operand,
     StrAttr:$op_kind);
-  let assemblyFormat = "$operand `,` $op_kind attr-dict";
+  let assemblyFormat =
+      "$operand `,` $op_kind attr-dict `:` type($operand)";
   let cppNamespace = "::mlir::test";
 }
 
@@ -166,8 +170,8 @@ def TestCheckIfTestExtensionPresentOp
   : Op<Transform_Dialect, "test_check_if_test_extension_present",
        [DeclareOpInterfaceMethods<TransformOpInterface>,
         DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
-  let arguments = (ins PDL_Operation:$operand);
-  let assemblyFormat = "$operand attr-dict";
+  let arguments = (ins TransformHandleTypeInterface:$operand);
+  let assemblyFormat = "$operand attr-dict `:` type($operand)";
   let cppNamespace = "::mlir::test";
 }
 
@@ -175,9 +179,9 @@ def TestRemapOperandPayloadToSelfOp
   : Op<Transform_Dialect, "test_remap_operand_to_self",
        [DeclareOpInterfaceMethods<TransformOpInterface>,
         DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
-  let arguments = (ins PDL_Operation:$operand);
+  let arguments = (ins TransformHandleTypeInterface:$operand);
   let results = (outs Optional<TransformHandleTypeInterface>:$out);        
-  let assemblyFormat = "$operand attr-dict (`:` type($out)^)?";
+  let assemblyFormat = "$operand attr-dict `:` functional-type($operand, $out)";
   let cppNamespace = "::mlir::test";
 }
 
@@ -221,9 +225,9 @@ def TestEmitRemarkAndEraseOperandOp
     [DeclareOpInterfaceMethods<TransformOpInterface>,
      DeclareOpInterfaceMethods<MemoryEffectsOpInterface>,
      FunctionalStyleTransformOpTrait]> {
-  let arguments = (ins PDL_Operation:$target, StrAttr:$remark,
+  let arguments = (ins TransformHandleTypeInterface:$target, StrAttr:$remark,
                    UnitAttr:$fail_after_erase);
-  let assemblyFormat = "$target `,` $remark attr-dict";
+  let assemblyFormat = "$target `,` $remark attr-dict `:` type($target)";
   let cppNamespace = "::mlir::test";
 }
 
@@ -231,11 +235,12 @@ def TestWrongNumberOfResultsOp
   : Op<Transform_Dialect, "test_wrong_number_of_results",
     [FunctionalStyleTransformOpTrait, MemoryEffectsOpInterface,
      TransformEachOpTrait, TransformOpInterface]> {
-  let arguments = (ins PDL_Operation:$target);
-  let results = (outs PDL_Operation:$a,
-                      PDL_Operation:$b,
-                      PDL_Operation:$c);
-  let assemblyFormat = "$target attr-dict";
+  let arguments = (ins TransformHandleTypeInterface:$target);
+  let results = (outs TransformHandleTypeInterface:$a,
+                      TransformHandleTypeInterface:$b,
+                      TransformHandleTypeInterface:$c);
+  let assemblyFormat =
+      "$target attr-dict `:` functional-type(operands, results)";
   let cppNamespace = "::mlir::test";
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
@@ -249,9 +254,10 @@ def TestWrongNumberOfMultiResultsOp
   : Op<Transform_Dialect, "test_wrong_number_of_multi_results",
     [FunctionalStyleTransformOpTrait, MemoryEffectsOpInterface,
      TransformEachOpTrait, TransformOpInterface]> {
-  let arguments = (ins PDL_Operation:$target);
-  let results = (outs PDL_Operation:$result);
-  let assemblyFormat = "$target attr-dict";
+  let arguments = (ins TransformHandleTypeInterface:$target);
+  let results = (outs TransformHandleTypeInterface:$result);
+  let assemblyFormat =
+      "$target attr-dict `:` functional-type($target, $result)";
   let cppNamespace = "::mlir::test";
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
@@ -265,10 +271,11 @@ def TestCorrectNumberOfMultiResultsOp
   : Op<Transform_Dialect, "test_correct_number_of_multi_results",
     [FunctionalStyleTransformOpTrait, MemoryEffectsOpInterface,
      TransformEachOpTrait, TransformOpInterface]> {
-  let arguments = (ins PDL_Operation:$target);
-  let results = (outs PDL_Operation:$result1,
-                      PDL_Operation:$result2);
-  let assemblyFormat = "$target attr-dict";
+  let arguments = (ins TransformHandleTypeInterface:$target);
+  let results = (outs TransformHandleTypeInterface:$result1,
+                      TransformHandleTypeInterface:$result2);
+  let assemblyFormat =
+      "$target attr-dict `:` functional-type(operands, results)";
   let cppNamespace = "::mlir::test";
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
@@ -282,10 +289,11 @@ def TestMixedNullAndNonNullResultsOp
   : Op<Transform_Dialect, "test_mixed_null_and_non_null_results",
     [FunctionalStyleTransformOpTrait, MemoryEffectsOpInterface,
      TransformEachOpTrait, TransformOpInterface]> {
-  let arguments = (ins PDL_Operation:$target);
-  let results = (outs PDL_Operation:$null,
-                      PDL_Operation:$non_null);
-  let assemblyFormat = "$target attr-dict";
+  let arguments = (ins TransformHandleTypeInterface:$target);
+  let results = (outs TransformHandleTypeInterface:$null,
+                      TransformHandleTypeInterface:$non_null);
+  let assemblyFormat =
+      "$target attr-dict `:` functional-type(operands, results)";
   let cppNamespace = "::mlir::test";
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
@@ -296,12 +304,12 @@ def TestMixedNullAndNonNullResultsOp
 }
 
 def TestMixedSuccessAndSilenceableOp
-  : Op<Transform_Dialect, "test_mixed_sucess_and_silenceable",
+  : Op<Transform_Dialect, "test_mixed_success_and_silenceable",
     [FunctionalStyleTransformOpTrait, MemoryEffectsOpInterface,
      TransformEachOpTrait, TransformOpInterface]> {
-  let arguments = (ins PDL_Operation:$target);
+  let arguments = (ins TransformHandleTypeInterface:$target);
   let results = (outs);
-  let assemblyFormat = "$target attr-dict";
+  let assemblyFormat = "$target attr-dict `:` type($target)";
   let cppNamespace = "::mlir::test";
   let extraClassDeclaration = [{
     ::mlir::DiagnosedSilenceableFailure applyToOne(
@@ -324,18 +332,19 @@ def TestCopyPayloadOp
   : Op<Transform_Dialect, "test_copy_payload",
        [DeclareOpInterfaceMethods<TransformOpInterface>,
         DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
-  let arguments = (ins PDL_Operation:$handle);
-  let results = (outs PDL_Operation:$copy);
+  let arguments = (ins TransformHandleTypeInterface:$handle);
+  let results = (outs TransformHandleTypeInterface:$copy);
   let cppNamespace = "::mlir::test";
-  let assemblyFormat = "$handle attr-dict";
+  let assemblyFormat =
+      "$handle attr-dict `:` functional-type(operands, results)";
 }
 
 def TestReportNumberOfTrackedHandlesNestedUnder
   : Op<Transform_Dialect, "test_report_number_of_tracked_handles_nested_under",
     [DeclareOpInterfaceMethods<MemoryEffectsOpInterface>,
      DeclareOpInterfaceMethods<TransformOpInterface>]> {
-  let arguments = (ins PDL_Operation:$target);
-  let assemblyFormat = "$target attr-dict";
+  let arguments = (ins TransformHandleTypeInterface:$target);
+  let assemblyFormat = "$target attr-dict `:` type($target)";
   let cppNamespace = "::mlir::test";
 }
 


        


More information about the Mlir-commits mailing list