Lines Matching refs:transform
1 // RUN: mlir-opt %s --transform-interpreter --split-input-file --verify-diagnostics
4 module attributes { transform.with_named_sequence } {
15 transform.named_sequence @peel(%arg0: !transform.op<"scf.for"> {transform.consumed}) {
16 transform.loop.peel %arg0 : (!transform.op<"scf.for">) -> (!transform.any_op, !transform.any_op)
17 transform.yield
19 …transform.named_sequence @match_for(%arg0: !transform.any_op {transform.readonly}) -> !transform.a…
20 transform.match.operation_name %arg0 ["scf.for"] : !transform.any_op
21 transform.yield %arg0 : !transform.any_op
23 transform.named_sequence @__transform_main(%root: !transform.any_op) {
24 transform.sequence %root : !transform.any_op failures(suppress) {
25 ^bb0(%arg0: !transform.any_op):
26 transform.foreach_match in %arg0
28 : (!transform.any_op) -> !transform.any_op
29 transform.yield
31 transform.yield
38 module attributes { transform.with_named_sequence } {
51 transform.named_sequence @peel(%arg0: !transform.op<"scf.for"> {transform.consumed}) {
52 transform.loop.peel %arg0 : (!transform.op<"scf.for">) -> (!transform.any_op, !transform.any_op)
53 transform.yield
55 …transform.named_sequence @match_for(%arg0: !transform.any_op {transform.readonly}) -> !transform.a…
56 transform.match.operation_name %arg0 ["scf.for"] : !transform.any_op
57 transform.yield %arg0 : !transform.any_op
59 transform.named_sequence @main_suppress(%root: !transform.any_op) {
60 transform.sequence %root : !transform.any_op failures(suppress) {
61 ^bb0(%arg0: !transform.any_op):
62 transform.foreach_match in %arg0
64 : (!transform.any_op) -> !transform.any_op
65 transform.yield
67 transform.yield
69 transform.named_sequence @__transform_main(%root: !transform.any_op) {
70 transform.sequence %root : !transform.any_op failures(propagate) {
71 ^bb0(%arg0: !transform.any_op):
73 transform.foreach_match in %arg0
75 : (!transform.any_op) -> !transform.any_op
76 transform.yield
78 transform.yield
85 module attributes { transform.with_named_sequence } {
91 transform.named_sequence @match_fail(
92 %op: !transform.any_op {transform.readonly},
93 %root: !transform.any_op {transform.readonly},
94 …%param: !transform.param<i64> {transform.readonly}) -> (!transform.any_op, !transform.param<i64>) {
95 transform.test_succeed_if_operand_of_op_kind %op, "test.impossible_to_match" : !transform.any_op
96 transform.yield %root, %param : !transform.any_op, !transform.param<i64>
99 transform.named_sequence @match_succeed(
100 %op: !transform.any_op {transform.readonly},
101 %root: !transform.any_op {transform.readonly},
102 …%param: !transform.param<i64> {transform.readonly}) -> (!transform.any_op, !transform.param<i64>) {
103 transform.debug.emit_remark_at %root, "op from within the matcher" : !transform.any_op
105 …transform.debug.emit_param_as_remark %param, "param from within the matcher" : !transform.param<i6…
106 transform.yield %root, %param : !transform.any_op, !transform.param<i64>
109 transform.named_sequence @return(
110 %root: !transform.any_op {transform.readonly},
111 …%param: !transform.param<i64> {transform.readonly}) -> (!transform.param<i64>, !transform.param<i6…
112 …%func = transform.structured.match ops{["func.func"]} in %root : (!transform.any_op) -> !transform…
113 …transform.yield %param, %param, %func : !transform.param<i64>, !transform.param<i64>, !transform.a…
116 transform.named_sequence @__transform_main(%root: !transform.any_op) {
117 %param = transform.param.constant 42 : i64 -> !transform.param<i64>
118 …%func = transform.structured.match ops{["func.func"]} in %root : (!transform.any_op) -> !transform…
119 %func2, %yielded:3 = transform.foreach_match restrict_root in %func, %root, %param
122 …: (!transform.any_op, !transform.any_op, !transform.param<i64>) -> (!transform.any_op, !transform.…
123 transform.debug.emit_remark_at %yielded#2, "returned root" : !transform.any_op
125 transform.debug.emit_param_as_remark %yielded#0: !transform.param<i64>
126 … %num_roots = transform.num_associations %yielded#2 : (!transform.any_op) -> !transform.param<i64>
128 transform.debug.emit_param_as_remark %num_roots : !transform.param<i64>
129 transform.yield
135 module attributes { transform.with_named_sequence } {
139 transform.named_sequence @match(
140 %op: !transform.any_op {transform.readonly},
141 %func: !transform.any_op {transform.readonly}) -> (!transform.any_op) {
142 transform.yield %func : !transform.any_op
145 transform.named_sequence @return(
146 %func: !transform.any_op {transform.readonly}) -> (!transform.any_op) {
147 transform.yield %func : !transform.any_op
150 transform.named_sequence @__transform_main(%root: !transform.any_op) {
151 …%func = transform.structured.match ops{["func.func"]} in %root : (!transform.any_op) -> !transform…
152 %func2, %yielded = transform.foreach_match flatten_results restrict_root in %func, %func
154 : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
155 %num = transform.num_associations %yielded : (!transform.any_op) -> !transform.param<i64>
158 transform.debug.emit_param_as_remark %num : !transform.param<i64>
159 transform.yield
166 module attributes { transform.with_named_sequence } {
170 transform.named_sequence @match(
171 %op: !transform.any_op {transform.readonly},
172 %func: !transform.any_op {transform.readonly}) -> (!transform.any_op) {
173 transform.yield %func : !transform.any_op
176 transform.named_sequence @return(
177 %func: !transform.any_op {transform.readonly}) -> (!transform.any_op) {
178 transform.yield %func : !transform.any_op
181 transform.named_sequence @__transform_main(%root: !transform.any_op) {
182 …%func = transform.structured.match ops{["func.func"]} in %root : (!transform.any_op) -> !transform…
184 %func2, %yielded = transform.foreach_match restrict_root in %func, %func
186 : (!transform.any_op, !transform.any_op) -> (!transform.any_op, !transform.any_op)
187 %num = transform.num_associations %yielded : (!transform.any_op) -> !transform.param<i64>
188 transform.yield