)]}'
{
  "commit": "c4aa124a118b578e525012ffebb3579f183847b4",
  "tree": "6a5e38c2ec1124cbe3f98d8d3f7b69ae538cd874",
  "parents": [
    "215774778177ffd8cd54e06c8d5bc5bd6fc7b1bd"
  ],
  "author": {
    "name": "Vimarsh Sathia",
    "email": "vsathia2@illinois.edu",
    "time": "Tue Oct 06 08:34:20 2026 -0500"
  },
  "committer": {
    "name": "Vimarsh Sathia",
    "email": "vsathia2@illinois.edu",
    "time": "Mon Oct 19 18:16:05 2026 -0500"
  },
  "message": "Fix captures and memory checks in AD hoisting\n\nKeep constant captures separate from active arguments.\nIf an effect or dependency check fails, reject motion.\nKeep automatic allocations in their owning scopes.\nCheck allocation and free effects for alias conflicts.\n\nTest that memref.alloca stays inside the AD region.\nTest that memref.dealloc stays after a store to the same buffer.\n\nRelated: EnzymeAD/Enzyme-JAX#3204.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5d66d92755154b1e7ae8fc8469e4081ac5a76bcb",
      "old_mode": 33188,
      "old_path": "enzyme/Enzyme/MLIR/Passes/HoistEnzymeRegions.cpp",
      "new_id": "1988f038a9e3c6ad469f242dcdcc0c49c4f06afc",
      "new_mode": 33188,
      "new_path": "enzyme/Enzyme/MLIR/Passes/HoistEnzymeRegions.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b5d7233e13d4b79a2636faed25fef8eec086e1ba",
      "new_mode": 33188,
      "new_path": "enzyme/test/MLIR/OptimizeAD/hoist_region_safety.mlir"
    }
  ]
}
