)]}'
{
  "commit": "9bd1fcba727b25f26c52b0b846048c3e1b4de6aa",
  "tree": "e8d56371527fc4f06efccc51d1152081bebcd5b2",
  "parents": [
    "8994112bfee3e7017ca71bb386fe06f50a178c6d"
  ],
  "author": {
    "name": "Valentin Churavy",
    "email": "v.churavy@gmail.com",
    "time": "Fri Oct 02 07:38:34 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Oct 06 08:34:57 2026 +0200"
  },
  "message": "Forward mode through OpenMP parallel regions\n\nvisitOMPCall only handled reverse modes, and asserted in forward mode on\nthe missing overwritten_args_map entry for __kmpc_fork_call. Fork the\nforward derivative of the outlined function instead, passing each active\nargument followed by its shadow (width 1; vector mode is an error).\n\nThe worksharing and synchronization calls (__kmpc_for_static_init,\n_fini, __kmpc_critical, _end_critical) emitted their reverse counterpart\nin every mode other than ReverseModePrimal, including forward modes,\nwhich have no reverse blocks. Keep only the primal call there.\n\nAssisted-by: Claude Code (Opus 5.5)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "883995ccc7d790e15ee956748ee0855c059dec39",
      "old_mode": 33188,
      "old_path": "enzyme/Enzyme/AdjointGenerator.h",
      "new_id": "c610d12e3011da86bd4abb7f529684794ab031c8",
      "new_mode": 33188,
      "new_path": "enzyme/Enzyme/AdjointGenerator.h"
    },
    {
      "type": "modify",
      "old_id": "c65177686fc86d3c0f367ac946606a9901625579",
      "old_mode": 33188,
      "old_path": "enzyme/Enzyme/CallDerivatives.cpp",
      "new_id": "6c5ea46f6ce64b7965e767c46aec987c484bd26f",
      "new_mode": 33188,
      "new_path": "enzyme/Enzyme/CallDerivatives.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bb5e7da552ab5f5abc6a071e7f6044d262feb04d",
      "new_mode": 33188,
      "new_path": "enzyme/test/Enzyme/ForwardMode/omp.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "02e4bb4738e28db8b1afbb5c744e5b44af879aef",
      "new_mode": 33188,
      "new_path": "enzyme/test/Fortran/OpenMP/forward.f90"
    }
  ]
}
