[Mlir-commits] [mlir] [MLIR][Transform][Tune] Introduce `transform.tune.alternatives` op (PR #160724)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Thu Sep 25 08:15:44 PDT 2025


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {darker}-->


:warning: Python code formatter, darker found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
darker --check --diff -r origin/main...HEAD mlir/python/mlir/dialects/transform/tune.py mlir/test/python/dialects/transform_tune_ext.py
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from darker here.
</summary>

``````````diff
--- test/python/dialects/transform_tune_ext.py	2025-09-25 15:02:37.000000 +0000
+++ test/python/dialects/transform_tune_ext.py	2025-09-25 15:15:15.542164 +0000
@@ -43,11 +43,14 @@
 
     # CHECK: %[[HEADS:.*]] = transform.tune.knob<"coin"> = true from options = [true, false] -> !transform.any_param
     heads = tune.KnobOp(any_param, "coin", options=[True, False], selected=True)
     # CHECK: transform.tune.knob<"animal"> = "dog" from options = ["cat", "dog", unit] -> !transform.any_param
     tune.KnobOp(
-        any_param, name="animal", options=["cat", "dog", ir.UnitAttr.get()], selected="dog"
+        any_param,
+        name="animal",
+        options=["cat", "dog", ir.UnitAttr.get()],
+        selected="dog",
     )
     # CHECK: transform.tune.knob<"tile_size"> = 8 : i64 from options = [2, 4, 8, 16, 24, 32] -> !transform.any_param
     tune.KnobOp(any_param, "tile_size", [2, 4, 8, 16, 24, 32], selected=8)
     # CHECK: transform.tune.knob<"magic_value"> = 2.500000e+00 : f64 from options = [2.000000e+00, 2.250000e+00, 2.500000e+00, 2.750000e+00, 3.000000e+00] -> !transform.any_param
     tune.knob(any_param, "magic_value", [2.0, 2.25, 2.5, 2.75, 3.0], selected=2.5)
@@ -69,61 +72,71 @@
             }
         ),
         selected=4,
     )
 
+
 # CHECK-LABEL: TEST: testAlternativesOp
 @run
 def testAlternativesOp(target):
     any_param = transform.AnyParamType.get()
 
     # CHECK: %[[LEFT_OR_RIGHT_OUTCOME:.*]] = transform.tune.alternatives<"left_or_right"> -> !transform.any_param {
-    left_or_right = tune.AlternativesOp([transform.AnyParamType.get()], "left_or_right", 2)
-    with ir.InsertionPoint(left_or_right.alternatives[_left := 0].blocks[0]):
+    left_or_right = tune.AlternativesOp(
+        [transform.AnyParamType.get()], "left_or_right", 2
+    )
+    with ir.InsertionPoint(left_or_right.alternatives[_left:=0].blocks[0]):
         # CHECK: %[[C0:.*]] = transform.param.constant 0
         i32_0 = ir.IntegerAttr.get(ir.IntegerType.get_signless(32), 0)
         c0 = transform.ParamConstantOp(transform.AnyParamType.get(), i32_0)
         # CHECK: transform.yield %[[C0]]
         transform.yield_(c0)
     # CHECK-NEXT: }, {
-    with ir.InsertionPoint(left_or_right.alternatives[_right := 1].blocks[0]):
+    with ir.InsertionPoint(left_or_right.alternatives[_right:=1].blocks[0]):
         # CHECK: %[[C1:.*]] = transform.param.constant 1
         i32_1 = ir.IntegerAttr.get(ir.IntegerType.get_signless(32), 1)
         c1 = transform.ParamConstantOp(transform.AnyParamType.get(), i32_1)
         # CHECK: transform.yield %[[C1]]
         transform.yield_(c1)
     # CHECK-NEXT: }
     outcome_of_left_or_right_decision = left_or_right.results[0]
 
     # CHECK: transform.tune.alternatives<"fork_in_the_road"> selected_region = 0 -> !transform.any_param {
-    fork_in_the_road = tune.AlternativesOp([transform.AnyParamType.get()], "fork_in_the_road", 2, selected_region=0)
-    with ir.InsertionPoint(fork_in_the_road.alternatives[_left := 0].blocks[0]):
+    fork_in_the_road = tune.AlternativesOp(
+        [transform.AnyParamType.get()], "fork_in_the_road", 2, selected_region=0
+    )
+    with ir.InsertionPoint(fork_in_the_road.alternatives[_left:=0].blocks[0]):
         # CHECK: %[[C0:.*]] = transform.param.constant 0
         i32_0 = ir.IntegerAttr.get(ir.IntegerType.get_signless(32), 0)
         c0 = transform.ParamConstantOp(transform.AnyParamType.get(), i32_0)
         # CHECK: transform.yield %[[C0]]
         transform.yield_(c0)
     # CHECK-NEXT: }, {
-    with ir.InsertionPoint(fork_in_the_road.alternatives[_right := 1].blocks[0]):
+    with ir.InsertionPoint(fork_in_the_road.alternatives[_right:=1].blocks[0]):
         # CHECK: %[[C1:.*]] = transform.param.constant 1
         i32_1 = ir.IntegerAttr.get(ir.IntegerType.get_signless(32), 1)
         c1 = transform.ParamConstantOp(transform.AnyParamType.get(), i32_1)
         # CHECK: transform.yield %[[C1]]
         transform.yield_(c1)
     # CHECK-NEXT: }
 
     # CHECK: transform.tune.alternatives<"left_or_right_as_before"> selected_region = %[[LEFT_OR_RIGHT_OUTCOME]] : !transform.any_param {
-    left_or_right_as_before = tune.AlternativesOp([], "left_or_right_as_before", 2, selected_region=outcome_of_left_or_right_decision)
-    with ir.InsertionPoint(left_or_right_as_before.alternatives[_left := 0].blocks[0]):
+    left_or_right_as_before = tune.AlternativesOp(
+        [],
+        "left_or_right_as_before",
+        2,
+        selected_region=outcome_of_left_or_right_decision,
+    )
+    with ir.InsertionPoint(left_or_right_as_before.alternatives[_left:=0].blocks[0]):
         # CHECK: transform.param.constant 1337
         i32_1337 = ir.IntegerAttr.get(ir.IntegerType.get_signless(32), 1337)
         c1337 = transform.ParamConstantOp(transform.AnyParamType.get(), i32_1337)
         # CHECK: transform.debug.emit_param_as_remark
         debug.emit_param_as_remark(c1337)
         transform.yield_([])
     # CHECK-NEXT: }, {
-    with ir.InsertionPoint(left_or_right_as_before.alternatives[_right := 1].blocks[0]):
+    with ir.InsertionPoint(left_or_right_as_before.alternatives[_right:=1].blocks[0]):
         # CHECK: transform.param.constant 42
         i32_42 = ir.IntegerAttr.get(ir.IntegerType.get_signless(32), 42)
         c42 = transform.ParamConstantOp(transform.AnyParamType.get(), i32_42)
         # CHECK: transform.debug.emit_param_as_remark
         debug.emit_param_as_remark(c42)

``````````

</details>


https://github.com/llvm/llvm-project/pull/160724


More information about the Mlir-commits mailing list