)]}'
{
  "commit": "b9a8b77dc5c115f871eba1f61b514b6518a08d8b",
  "tree": "7128f839cbec2a9d8560270953172137476f7e07",
  "parents": [
    "bff05a9dba76027d6145006d3f987f4e1da038cc"
  ],
  "author": {
    "name": "Ege Beysel",
    "email": "beysel@roofline.ai",
    "time": "Thu Aug 13 19:40:21 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 13 19:40:21 2026 +0200"
  },
  "message": "[Codegen][LLVMCPU] Split loadProcessorData: hoist only the alloca (#24786)\n\n35b2070 (#24749) fixed unbounded stack growth by moving the whole\nloadProcessorData CPU-feature patch buffer construction to the function\nentry block. But that also hoisted the feature-bit or/store away from\nthe ukernel call, and once the ukernel inlines, LLVM can no longer\nstore-to-load forward the forced feature bits into the ukernel\u0027s runtime\nfeature check across the enclosing loop, so the mmt4d/pack tile-func\nselect never devirtualizes and the microkernel is left out-of-line.\n\nSplit the two concerns: reserve only the alloca (the stack slot, the\nactual cause of #24744) in the entry block, but keep the feature-bit\npatch at the call site. The stores re-run per iteration but allocate no\nstack, so the stack stays bounded while the forced bits remain adjacent\nto the (inlined) load and fold as before, restoring devirtualization.\n\nAssisted-by: Claude-Code\n\n---------\n\nSigned-off-by: Ege Beysel \u003cbeyselege@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4c04a5d478e6b09103cdd0cdd46ce5caba8e56f9",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/DispatchABI.cpp",
      "new_id": "d6e993a0f96f634653b16ba786245f4dc528fa30",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/DispatchABI.cpp"
    },
    {
      "type": "modify",
      "old_id": "e3bfe93e5225ef8c5c16a2dd2630d6bbcda5ee30",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/test/convert_to_llvm.mlir",
      "new_id": "501ca10ed3397507346403e145fae06245fe7db4",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/test/convert_to_llvm.mlir"
    }
  ]
}
