@@ -256,30 +256,45 @@ def testReplicateOp(module: Module):
256
256
# CHECK: %{{.*}} = replicate num(%[[FIRST]]) %[[SECOND]]
257
257
258
258
259
+ # CHECK-LABEL: TEST: testApplyRegisteredPassOp
259
260
@run
260
261
def testApplyRegisteredPassOp (module : Module ):
262
+ # CHECK: transform.sequence
261
263
sequence = transform .SequenceOp (
262
264
transform .FailurePropagationMode .Propagate , [], transform .AnyOpType .get ()
263
265
)
264
266
with InsertionPoint (sequence .body ):
267
+ # CHECK: %{{.*}} = apply_registered_pass "canonicalize" to {{.*}} : (!transform.any_op) -> !transform.any_op
265
268
mod = transform .ApplyRegisteredPassOp (
266
269
transform .AnyOpType .get (), sequence .bodyTarget , "canonicalize"
267
270
)
271
+ # CHECK: %{{.*}} = apply_registered_pass "canonicalize"
272
+ # CHECK-SAME: with options = {"top-down" = false}
273
+ # CHECK-SAME: to {{.*}} : (!transform.any_op) -> !transform.any_op
268
274
mod = transform .ApplyRegisteredPassOp (
269
275
transform .AnyOpType .get (),
270
276
mod .result ,
271
277
"canonicalize" ,
272
278
options = {"top-down" : BoolAttr .get (False )},
273
279
)
280
+ # CHECK: %[[MAX_ITER:.+]] = transform.param.constant
274
281
max_iter = transform .param_constant (
275
282
transform .AnyParamType .get (),
276
283
IntegerAttr .get (IntegerType .get_signless (64 ), 10 ),
277
284
)
285
+ # CHECK: %[[MAX_REWRITE:.+]] = transform.param.constant
278
286
max_rewrites = transform .param_constant (
279
287
transform .AnyParamType .get (),
280
288
IntegerAttr .get (IntegerType .get_signless (64 ), 1 ),
281
289
)
282
- transform .apply_registered_pass (
290
+ # CHECK: %{{.*}} = apply_registered_pass "canonicalize"
291
+ # NB: MLIR has sorted the dict lexicographically by key:
292
+ # CHECK-SAME: with options = {"max-iterations" = %[[MAX_ITER]],
293
+ # CHECK-SAME: "max-rewrites" = %[[MAX_REWRITE]],
294
+ # CHECK-SAME: "test-convergence" = true,
295
+ # CHECK-SAME: "top-down" = false}
296
+ # CHECK-SAME: to %{{.*}} : (!transform.any_op, !transform.any_param, !transform.any_param) -> !transform.any_op
297
+ mod = transform .apply_registered_pass (
283
298
transform .AnyOpType .get (),
284
299
mod ,
285
300
"canonicalize" ,
@@ -290,19 +305,32 @@ def testApplyRegisteredPassOp(module: Module):
290
305
"max-rewrites" : max_rewrites ,
291
306
},
292
307
)
308
+ # CHECK: %{{.*}} = apply_registered_pass "symbol-privatize"
309
+ # CHECK-SAME: with options = {"exclude" = ["a", "b"]}
310
+ # CHECK-SAME: to %{{.*}} : (!transform.any_op) -> !transform.any_op
311
+ mod = transform .apply_registered_pass (
312
+ transform .AnyOpType .get (),
313
+ mod ,
314
+ "symbol-privatize" ,
315
+ options = { "exclude" : ("a" , "b" ) },
316
+ )
317
+ # CHECK: %[[SYMBOL_A:.+]] = transform.param.constant
318
+ symbol_a = transform .param_constant (
319
+ transform .AnyParamType .get (),
320
+ StringAttr .get ("a" )
321
+ )
322
+ # CHECK: %[[SYMBOL_B:.+]] = transform.param.constant
323
+ symbol_b = transform .param_constant (
324
+ transform .AnyParamType .get (),
325
+ StringAttr .get ("b" )
326
+ )
327
+ # CHECK: %{{.*}} = apply_registered_pass "symbol-privatize"
328
+ # CHECK-SAME: with options = {"exclude" = [%[[SYMBOL_A]], %[[SYMBOL_B]]]}
329
+ # CHECK-SAME: to %{{.*}} : (!transform.any_op, !transform.any_param, !transform.any_param) -> !transform.any_op
330
+ mod = transform .apply_registered_pass (
331
+ transform .AnyOpType .get (),
332
+ mod ,
333
+ "symbol-privatize" ,
334
+ options = { "exclude" : (symbol_a , symbol_b ) },
335
+ )
293
336
transform .YieldOp ()
294
- # CHECK-LABEL: TEST: testApplyRegisteredPassOp
295
- # CHECK: transform.sequence
296
- # CHECK: %{{.*}} = apply_registered_pass "canonicalize" to {{.*}} : (!transform.any_op) -> !transform.any_op
297
- # CHECK: %{{.*}} = apply_registered_pass "canonicalize"
298
- # CHECK-SAME: with options = {"top-down" = false}
299
- # CHECK-SAME: to {{.*}} : (!transform.any_op) -> !transform.any_op
300
- # CHECK: %[[MAX_ITER:.+]] = transform.param.constant
301
- # CHECK: %[[MAX_REWRITE:.+]] = transform.param.constant
302
- # CHECK: %{{.*}} = apply_registered_pass "canonicalize"
303
- # NB: MLIR has sorted the dict lexicographically by key:
304
- # CHECK-SAME: with options = {"max-iterations" = %[[MAX_ITER]],
305
- # CHECK-SAME: "max-rewrites" = %[[MAX_REWRITE]],
306
- # CHECK-SAME: "test-convergence" = true,
307
- # CHECK-SAME: "top-down" = false}
308
- # CHECK-SAME: to %{{.*}} : (!transform.any_op, !transform.any_param, !transform.any_param) -> !transform.any_op
0 commit comments