)]}'
{
  "commit": "e609aa902fede2a70f0a0dd61f0f176e55e271b8",
  "tree": "f899e78b400f99bf5206a6360bfa46ef1d324759",
  "parents": [
    "2e978ebfec686692c67ce75ade42c54dbac67e87"
  ],
  "author": {
    "name": "Alex Denisov",
    "email": "denisov@roofline.ai",
    "time": "Fri Sep 11 10:18:09 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Sep 11 11:18:09 2026 +0300"
  },
  "message": "[DispatchCreation] Add an option to block matmul producers from being fused in the same dispatch region (#24899)\n\nWhen targeting CPU with data tiling and ukernels enabled (`mmt4d`\nspecifically), some producers materialize on the stack when fused\ntogether with the consuming matmuls, which may lead to stack oveflow.\n\nThis PR adds a workaround/flag which would block fusion of such ops.\n\nThe flag is on by default, no performance regressions observed.\n\n### Alternatives considered\n\nAt the level of dispatch creation it is not possible to precisely\ncalculate whether the producer would overflow the stack or not since\nthere is not enough information at that point. It is possible to\nimplement a crude approximation, but it heavily depends on the exact\ntiling and vectorizing details lower on the stack.\n\nAssisted-by: Claude Code\nSigned-off-by: Alex Denisov \u003cdenisov@roofline.ai\u003e\n\n---------\n\nSigned-off-by: Alex Denisov \u003cdenisov@roofline.ai\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "da95c44b97eebc73ceb57bcb5830752c5cdcd781",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/BUILD.bazel",
      "new_id": "7d715b0cfa44918fcef2a9364fae5f5edbd77eec",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "69c8b81850386e1d555e867daf66c5e9d9433bd6",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/CMakeLists.txt",
      "new_id": "dd7c616231f2694bb9600bfb32cacd95cc0bff32",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "3ab05b9ffa7060011626e3d6265937d82b67d38d",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/RegionOpUtils.cpp",
      "new_id": "2dcd0b0fe538afa8ed7c875e96695fbf41e08f48",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/RegionOpUtils.cpp"
    },
    {
      "type": "modify",
      "old_id": "f2922e6f3aff87246af603e9c2f266de7c3532fa",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/test/BUILD.bazel",
      "new_id": "beae569b0de05f957942b5c8d2c45f3b5c270baa",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "76e848a46a7f1b8a9848d3d1496456717b25ef5d",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/test/CMakeLists.txt",
      "new_id": "daaad46e2c2ee2872462c21958d6aca0e785fabc",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b190a717824c5acdf5e5f31a24ce243aab3e33ae",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/dispatch_block_matmul_producers.mlir"
    }
  ]
}
