Lines Matching refs:transform

1 // RUN: mlir-opt --transform-interpreter --split-input-file --verify-diagnostics %s
9 module attributes {transform.with_named_sequence} {
10 transform.named_sequence @__transform_main(%root: !transform.any_op) {
11 transform.with_pdl_patterns %root : !transform.any_op {
12 ^bb0(%arg0: !transform.any_op):
17 rewrite %2 with "transform.dialect"
20 sequence %arg0 : !transform.any_op failures(propagate) {
21 ^bb1(%arg1: !transform.any_op):
23 %0 = pdl_match @return in %arg1 : (!transform.any_op) -> !transform.any_op
24 %1 = get_parent_op %0 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
25 // expected-note @below {{invalidated by this transform op that consumes its operand #0}}
26 test_consume_operand %1 : !transform.any_op
27 … // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
28 transform.debug.emit_remark_at %0, "remark" : !transform.any_op
31 transform.yield
43 module attributes {transform.with_named_sequence} {
44 transform.named_sequence @__transform_main(%root: !transform.any_op) {
45 transform.with_pdl_patterns %root : !transform.any_op {
46 ^bb0(%arg0: !transform.any_op):
51 rewrite %2 with "transform.dialect"
57 rewrite %2 with "transform.dialect"
60 sequence %arg0 : !transform.any_op failures(propagate) {
61 ^bb1(%arg1: !transform.any_op):
62 %0 = pdl_match @func in %arg1 : (!transform.any_op) -> !transform.any_op
63 %1 = pdl_match @return in %arg1 : (!transform.any_op) -> !transform.any_op
64 %2 = replicate num(%0) %1 : !transform.any_op, !transform.any_op
66 test_consume_operand %2 : !transform.any_op
67 transform.debug.emit_remark_at %0, "remark" : !transform.any_op
70 transform.yield
79 module attributes {transform.with_named_sequence} {
81 transform.named_sequence @__transform_main(%0: !transform.any_op) {
82 %1 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
84 %2 = transform.test_copy_payload %0 : (!transform.any_op) ->!transform.any_op
85 // expected-note @below {{invalidated by this transform op that consumes its operand #0}}
86 transform.test_consume_operand %1 : !transform.any_op
87 // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
88 transform.test_consume_operand %2 : !transform.any_op
89 transform.yield
97 module attributes {transform.with_named_sequence} {
99 transform.named_sequence @__transform_main(%0: !transform.any_op) {
100 %1 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
102 %2 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
106 // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
107 …// expected-note @below {{invalidated by this transform op that consumes its operand #0 and invali…
108 transform.test_consume_operand %1, %2 : !transform.any_op, !transform.any_op
109 transform.yield
117 module attributes {transform.with_named_sequence} {
119 transform.named_sequence @__transform_main(%0: !transform.any_op) {
120 %1 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
121 %2 = transform.test_copy_payload %0 : (!transform.any_op) -> !transform.any_op
122 transform.merge_handles %1, %2 { deduplicate } : !transform.any_op
123 transform.yield
131 module attributes {transform.with_named_sequence} {
132 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
133 …%2 = transform.structured.match ops{["test.match_anchor"]} in %arg0 : (!transform.any_op) -> !tran…
134 …%3 = transform.test_produce_value_handle_to_result %2, 0 : (!transform.any_op) -> !transform.any_v…
136 …%4 = transform.test_produce_value_handle_to_result %2, 0 : (!transform.any_op) -> !transform.any_v…
137 …// expected-note @below {{invalidated by this transform op that consumes its operand #0 and invali…
138 transform.test_consume_operand %3 : !transform.any_value
139 // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
140 transform.test_consume_operand %4 : !transform.any_value
141 transform.yield
152 module attributes {transform.with_named_sequence} {
153 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
154 …%2 = transform.structured.match ops{["test.match_anchor"]} in %arg0 : (!transform.any_op) -> !tran…
156 …%3 = transform.test_produce_value_handle_to_result %2, 0 : (!transform.any_op) -> !transform.any_v…
157 …// expected-note @below {{invalidated by this transform op that consumes its operand #0 and invali…
158 transform.test_consume_operand %2 : !transform.any_op
159 // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
160 transform.test_consume_operand %3 : !transform.any_value
161 transform.yield
176 module attributes {transform.with_named_sequence} {
177 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
178 …%1 = transform.structured.match ops{["test.match_anchor_1"]} in %arg0 : (!transform.any_op) -> !tr…
179 …%2 = transform.structured.match ops{["test.match_anchor_2"]} in %arg0 : (!transform.any_op) -> !tr…
181 …%3 = transform.test_produce_value_handle_to_result %2, 0 : (!transform.any_op) -> !transform.any_v…
182 …// expected-note @below {{invalidated by this transform op that consumes its operand #0 and invali…
183 transform.test_consume_operand %1 : !transform.any_op
184 // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
185 transform.test_consume_operand %3 : !transform.any_value
186 transform.yield
201 module attributes {transform.with_named_sequence} {
202 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
203 …%1 = transform.structured.match ops{["test.match_anchor_1"]} in %arg0 : (!transform.any_op) -> !tr…
204 …%2 = transform.structured.match ops{["test.match_anchor_2"]} in %arg0 : (!transform.any_op) -> !tr…
206 …%3 = transform.test_produce_value_handle_to_argument_of_parent_block %2, 0 : (!transform.any_op) -…
207 …// expected-note @below {{invalidated by this transform op that consumes its operand #0 and invali…
208 transform.test_consume_operand %1 : !transform.any_op
209 // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
210 transform.test_consume_operand %3 : !transform.any_value
211 transform.yield
229 module attributes {transform.with_named_sequence} {
230 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
231 …%1 = transform.structured.match ops{["test.match_anchor_1"]} in %arg0 : (!transform.any_op) -> !tr…
232 …%2 = transform.structured.match ops{["test.match_anchor_2"]} in %arg0 : (!transform.any_op) -> !tr…
234 …%3 = transform.test_produce_value_handle_to_argument_of_parent_block %2, 0 : (!transform.any_op) -…
235 …// expected-note @below {{invalidated by this transform op that consumes its operand #0 and invali…
236 transform.test_consume_operand %1 : !transform.any_op
237 // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
238 transform.test_consume_operand %3 : !transform.any_value
239 transform.yield
250 module attributes {transform.with_named_sequence} {
251 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
253 …%2 = transform.structured.match ops{["test.match_anchor"]} in %arg0 : (!transform.any_op) -> !tran…
254 …%3 = transform.test_produce_value_handle_to_result %2, 0 : (!transform.any_op) -> !transform.any_v…
255 …// expected-note @below {{invalidated by this transform op that consumes its operand #0 and invali…
256 transform.test_consume_operand %3 : !transform.any_value
257 // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
258 transform.test_consume_operand %2 : !transform.any_op
259 transform.yield
274 module attributes {transform.with_named_sequence} {
275 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
276 …%1 = transform.structured.match ops{["test.match_anchor_1"]} in %arg0 : (!transform.any_op) -> !tr…
278 …%2 = transform.structured.match ops{["test.match_anchor_2"]} in %arg0 : (!transform.any_op) -> !tr…
279 …%3 = transform.test_produce_value_handle_to_result %1, 0 : (!transform.any_op) -> !transform.any_v…
280 …// expected-note @below {{invalidated by this transform op that consumes its operand #0 and invali…
281 transform.test_consume_operand %3 : !transform.any_value
282 // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
283 transform.test_consume_operand %2 : !transform.any_op
284 transform.yield
300 module attributes {transform.with_named_sequence} {
301 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
303 …%2 = transform.structured.match ops{["test.match_anchor_2"]} in %arg0 : (!transform.any_op) -> !tr…
304 …%3 = transform.test_produce_value_handle_to_argument_of_parent_block %2, 0 : (!transform.any_op) -…
305 …// expected-note @below {{invalidated by this transform op that consumes its operand #0 and invali…
306 transform.test_consume_operand %3 : !transform.any_value
307 // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
308 transform.test_consume_operand %2 : !transform.any_op
309 transform.yield
328 module attributes {transform.with_named_sequence} {
329 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
330 …%1 = transform.structured.match ops{["test.match_anchor_1"]} in %arg0 : (!transform.any_op) -> !tr…
332 …%2 = transform.structured.match ops{["test.match_anchor_2"]} in %arg0 : (!transform.any_op) -> !tr…
333 …%3 = transform.test_produce_value_handle_to_argument_of_parent_block %1, 0 : (!transform.any_op) -…
334 …// expected-note @below {{invalidated by this transform op that consumes its operand #0 and invali…
335 transform.test_consume_operand %3 : !transform.any_value
336 // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
337 transform.test_consume_operand %2 : !transform.any_op
338 transform.yield
354 module attributes {transform.with_named_sequence} {
355 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
356 …%1 = transform.structured.match ops{["test.match_anchor_1"]} in %arg0 : (!transform.any_op) -> !tr…
357 …%2 = transform.structured.match ops{["test.match_anchor_2"]} in %arg0 : (!transform.any_op) -> !tr…
358 …%3 = transform.test_produce_value_handle_to_argument_of_parent_block %1, 0 : (!transform.any_op) -…
359 transform.test_consume_operand %3 : !transform.any_value
360 transform.test_consume_operand %2 : !transform.any_op
361 transform.yield
367 module attributes {transform.with_named_sequence} {
368 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
369 %0 = transform.test_produce_empty_payload : !transform.any_op
370 // expected-note @below {{invalidated by this transform op that consumes its operand #0}}
371 transform.test_consume_operand %0 : !transform.any_op
372 …uses a handle associated with empty payload and invalidated by a previously executed transform op}}
373 transform.debug.emit_remark_at %0, "remark" : !transform.any_op
374 transform.yield
383 // of repeated consumption, create a handle to the transform operation and
387 module attributes {transform.with_named_sequence} {
388 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
391 %0 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
392 …// expected-note @below {{invalidated by this transform op that consumes its operand #0 and invali…
393 transform.test_consume_operand %arg0 : !transform.any_op
394 // expected-error @below {{uses a handle invalidated by a previously executed transform op}}
395 transform.test_consume_operand %0 { allow_repeated_handles } : !transform.any_op
396 transform.yield
405 module attributes {transform.with_named_sequence} {
406 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
407 transform.test_re_enter_region {
408 %0 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
409 transform.test_consume_operand %0 : !transform.any_op
410 transform.yield
412 transform.yield
421 module attributes {transform.with_named_sequence} {
422 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
423 %0 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
424 transform.test_re_enter_region %0 : !transform.any_op {
425 ^bb0(%arg1: !transform.any_op):
426 transform.test_consume_operand %arg1 : !transform.any_op
427 transform.yield
429 transform.yield
436 module attributes {transform.with_named_sequence} {
437 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
440 %0 = transform.test_produce_self_handle_or_forward_operand : () -> !transform.any_op
441 transform.test_re_enter_region {
442 … // expected-error @below {{op uses a handle invalidated by a previously executed transform op}}
443 // expected-note @below {{invalidated by this transform op}}
444 transform.test_consume_operand %0 : !transform.any_op
445 transform.yield
447 transform.yield
453 module @named_inclusion_and_consumption attributes { transform.with_named_sequence } {
455 transform.named_sequence @foo(%arg0: !transform.any_op {transform.consumed}) -> () {
460 transform.test_consume_operand %arg0 : !transform.any_op
461 transform.yield
464 transform.named_sequence @__transform_main(%arg0: !transform.any_op) {
465 transform.include @foo failures(propagate) (%arg0) : (!transform.any_op) -> ()
466 transform.yield