)]}'
{
  "commit": "101fef6ea1e1525e72377a6638312da7ed4297d1",
  "tree": "1c05f0c8f41ba1c1cf9cb3b9c15d06bd75f21c88",
  "parents": [
    "3cfc955c9c73ad7c54334e0db15b46000932297a"
  ],
  "author": {
    "name": "William S. Moses",
    "email": "gh@wsmoses.com",
    "time": "Mon Sep 28 13:57:03 2026 -0500"
  },
  "committer": {
    "name": "Valentin Churavy",
    "email": "v.churavy@gmail.com",
    "time": "Sat Oct 03 21:05:19 2026 +0200"
  },
  "message": "Backstack lowering: move a local slot the moved pointer is stored into\n\nLowerAllocAddr moves an allocation marked enzyme_backstack back to the stack\nafter differentiation and rewrites the users of its Julia-address-space\npointer. Only a store through the pointer was handled; a store of the pointer\nitself -- e.g. caching it for the reverse pass -- was rejected with \"Illegal\naddress space propagation\". When the slot is a local alloca that is only\nloaded from, or stored this value or constants, give it the new pointer type\nand continue from its loads, so that no tracked value holds the stack address.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_015RAaewsVwF5wyRBfErBEEr\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "063887154f7eec85ba86850241ec44360012d541",
      "old_mode": 33188,
      "old_path": "enzyme/Enzyme/FunctionUtils.cpp",
      "new_id": "7caadeb10f53d946e4f218d5da4254be63fd05e7",
      "new_mode": 33188,
      "new_path": "enzyme/Enzyme/FunctionUtils.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8a7c10821009035044da15cc6917fd31fe01219d",
      "new_mode": 33188,
      "new_path": "enzyme/test/Enzyme/ReverseMode/backstack_slot.ll"
    }
  ]
}
