)]}'
{
  "commit": "5fcbdbcecfb68ae34aee5123d0d46a350c0dafbd",
  "tree": "cb7bdb7bcb4745eec1f1370af6bb46b5414db7c3",
  "parents": [
    "771eac53cb559fa324b0682ba329049b44b881e0"
  ],
  "author": {
    "name": "Han-Chung Wang",
    "email": "hanhan0912@gmail.com",
    "time": "Tue Mar 03 13:31:25 2026 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Mar 03 21:31:25 2026 +0000"
  },
  "message": "[VMVX] Enable scf.forall distribution for VMVX pipelines. (#23615)\n\nThe iree_codegen.query_tile_sizes op was resolved during scf.for\ndistribution. If we go with scf.forall distribution, it becomes\n`iree_codegen.ukernel.generic` before reconcile+resolve runs. Thus, it\nrequires a workaround similar to the existing one.\n\nFurther more, LowerUKernelOpsToCallsPass would lower it to a func.call\nwhich is memory-effecting and would be rejected by backward slice\nanalysis. So we put the reconcile+resolve in between, which is the stage\nthat we have enough information.\n\n- Move reconcile+resolve before LowerUKernelOpsToCallsPass in the VMVX\nvariant pipeline.\n- Extend the WAR hack in materializeSliceFromOrdinals (TODO #13038) to\nalso handle the lowered UKernelGenericOp form of query_tile_sizes,\nreplacing it with a constant 16 in the workgroup count region.\n- Disable the distribution if it identifies that the distribution is\nalready applied.\n\nFixes https://github.com/iree-org/iree/issues/23588\n\n---------\n\nSigned-off-by: hanhanW \u003chanhan0912@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "94c62b764561ed2447348c7e929679b8cc087600",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Transforms/Transforms.cpp",
      "new_id": "eae38d50c49ef5512efc4a4231a8b125cf3e3be9",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Transforms/Transforms.cpp"
    },
    {
      "type": "modify",
      "old_id": "1f30c39e564b298f57be85568585e272b150de1c",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/VMVX/KernelDispatch.cpp",
      "new_id": "791f7847873214ddddbfddf33ed3863b84795188",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/VMVX/KernelDispatch.cpp"
    },
    {
      "type": "modify",
      "old_id": "c91569f043f8c51f055ccaf4254932a4c7a2c6b6",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/VMVX/Passes.cpp",
      "new_id": "a4a2100aafdaf71925d053117a40e4b1d24c2692",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/VMVX/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "b939505a0548d7fabd2ec72c5f4152ac9216b364",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/VMVX/test/select_lowering_strategy.mlir",
      "new_id": "abde13597adad53f25e01e7f6a555274bd658bcc",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/VMVX/test/select_lowering_strategy.mlir"
    },
    {
      "type": "modify",
      "old_id": "700997e57478ff3209c9e7c19128940ebc841636",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/VMVX/Transforms/Passes.cpp",
      "new_id": "2ce5b2bea70205f8bb4b64021d2738e62f05ae90",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/VMVX/Transforms/Passes.cpp"
    }
  ]
}
