)]}'
{
  "commit": "35b2070788e70693b3c04ecfd96b282c03a4bf26",
  "tree": "6677642d8114429e46a3a2743a2cc61a02c99cc5",
  "parents": [
    "5e31a849f6ebfd92760764537cc75ac4584f35d0"
  ],
  "author": {
    "name": "Federico Bruzzone",
    "email": "federico.bruzzone.i@gmail.com",
    "time": "Fri Jul 24 08:40:33 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jul 24 08:40:33 2026 +0200"
  },
  "message": "[Codegen][LLVMCPU] Hoist in-loop stack alloca (#24749)\n\n`HALDispatchABI::loadProcessorData` built its CPU-feature patch buffer\nwith an `alloca` at the ukernel call site instead of the function entry\nblock. `RewriteCallOpABI` materializes this after all MLIR-\u003eLLVM\nconversions are done, so no later pass can hoist it out of a loop if the\ncall happens to sit inside one, causing the stack to grow unboundedly on\nlarge matmuls.\n\nThe computation only depends on the function\u0027s `environment` argument\nand static target attributes, so it can safely move to the entry block.\n\nFixes #24744\n\n---------\n\nSigned-off-by: Federico Bruzzone \u003cfederico.bruzzone.i@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6e499651151e10020d84b738f77890006b73eef9",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/DispatchABI.cpp",
      "new_id": "4c04a5d478e6b09103cdd0cdd46ce5caba8e56f9",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/DispatchABI.cpp"
    },
    {
      "type": "modify",
      "old_id": "1049e3201b8cfe0c7ede0d093e71683f7ff8cc49",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/test/convert_to_llvm.mlir",
      "new_id": "e3bfe93e5225ef8c5c16a2dd2630d6bbcda5ee30",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/test/convert_to_llvm.mlir"
    }
  ]
}
