)]}'
{
  "commit": "5fccf5f6944c1dc145ba2d61d02fabf4142e08f3",
  "tree": "b88528fe7a5541ea4c3fa22dfa21cd4f93aab4b0",
  "parents": [
    "f706b654865f3e2e123b1046b7b374d55070a3fd"
  ],
  "author": {
    "name": "William S. Moses",
    "email": "gh@wsmoses.com",
    "time": "Mon Sep 28 13:46:02 2026 -0500"
  },
  "committer": {
    "name": "William S. Moses",
    "email": "gh@wsmoses.com",
    "time": "Mon Sep 28 14:15:55 2026 -0500"
  },
  "message": "Drop the post-cut loopy-reduction preheader walk\n\nThe use analysis already treats the start value of a loopy reduction as\nneeded in the reverse pass (checkLoopyReductionPHI), so the start value\nis part of the recompute graph before the min cut: a recomputable one\nbecomes a required node, and one that cannot be recomputed is chosen for\ncaching up front. pushLoopyPHIPreheader re-added start values after the\ncut, overriding that decision: a start value already chosen for caching\nwas flipped to recompute, and the walk through its operands pulled in\nvalues the cut had dropped, both tripping the legalRecompute assertion\nin computeMinCache (e.g. the start phi of a vectorizer\u0027s remainder loop\nin a max reduction). Remove the walk.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01RzKKhifUUoQ4icPtPHwWY1\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "18fba0ad5e1bf643499a42d9b042754f43e9c189",
      "old_mode": 33188,
      "old_path": "enzyme/Enzyme/DifferentialUseAnalysis.cpp",
      "new_id": "efea91b9eda27359023ff73b27560c0a8092384d",
      "new_mode": 33188,
      "new_path": "enzyme/Enzyme/DifferentialUseAnalysis.cpp"
    },
    {
      "type": "modify",
      "old_id": "34f367d8f689acdd16dfef3b8c09bbc884151492",
      "old_mode": 33188,
      "old_path": "enzyme/Enzyme/DifferentialUseAnalysis.h",
      "new_id": "6301d82d62132429accaa47595843de2c1298b6a",
      "new_mode": 33188,
      "new_path": "enzyme/Enzyme/DifferentialUseAnalysis.h"
    },
    {
      "type": "modify",
      "old_id": "1b2838cee85cd4b2aa2339b293f17b581d68693b",
      "old_mode": 33188,
      "old_path": "enzyme/Enzyme/GradientUtils.cpp",
      "new_id": "6f57c7c33c69dcac8416e6874b29efabb3bf11b6",
      "new_mode": 33188,
      "new_path": "enzyme/Enzyme/GradientUtils.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2204dc44841cadbcfaa1699711c8c1a56b4f62d8",
      "new_mode": 33188,
      "new_path": "enzyme/test/Enzyme/ReverseMode/loopyreduction-remainder-start.ll"
    }
  ]
}
