)]}'
{
  "commit": "ad3c19a8984263286bc930c4d7a127cced8200ec",
  "tree": "db2d6b85ebe7dadd75def307e859ba824efabf91",
  "parents": [
    "16bea755713721f967029aabb4da153e2cc40f62"
  ],
  "author": {
    "name": "Nikhil Kotikalapudi",
    "email": "nak00001@outlook.com",
    "time": "Fri Aug 28 11:35:57 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Aug 28 17:35:57 2026 +0200"
  },
  "message": "[AMDGPU][CodeGen] Incrementally update reserved regs for SIPreAllocateWWMRegs pass in RegisterClassInfo (#212201)\n\nBased on this TODO comment in SIPreAllocateWWMRegs.cpp:\n\n76    // TODO: Update RCI with the additional reserved registers the pass sets.\n77    AU.addRequired\u003cMachineRegisterClassInfoWrapperPass\u003e();\n\nCreates function updateReservedRegs in RegisterClassInfo.cpp which takes\nthe BitVector containing reserved register information without requiring\nany unnecessary recomputations of the entire RegisterClassInfo object.\nIt:\n- Compares the new reserved-register set with the cached set.\n- Removes newly reserved registers from cached allocation orders.\n- Updates register counts, costs, subclass information, and pressure\nlimits.\n- Invalidates entries when incremental updating is unsafe; they are\nrecomputed only when next requested.\n- Allows `SIPreAllocateWWMRegs` to preserve `RegisterClassInfo` after\nreserving WWM registers.\n\nAlso drops the unconditional compute(RC) in computePSetLimit, which was\nredundant since getNumAllocatableRegs already recomputes stale entries.\nThis is within the scope of my PR because it would unnecessarily rebuild\nan already-valid entry, rendering the incremental update pointless.\n\n---------\n\nCo-authored-by: Matt Arsenault \u003carsenm2@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "256277832db24e3b743836ccaf704643e5bc0a68",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/CodeGen/RegisterClassInfo.h",
      "new_id": "ab286d8da1e0702c187ade17f480265e238a8ab4",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/CodeGen/RegisterClassInfo.h"
    },
    {
      "type": "modify",
      "old_id": "da25c9b8c29c5eee03c6389dadd5294010f3a32f",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/RegisterClassInfo.cpp",
      "new_id": "c3872e155098f2eff767a608f1f49a9aa4dc756c",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/RegisterClassInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "0d9ef77b70562f4e46d453d2d3ac5549049745f0",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp",
      "new_id": "3a749d040f8e6e0ee2a316d322eaefe56e6705db",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp"
    },
    {
      "type": "delete",
      "old_id": "6571294bac741a480adf5c82c82fcb6bca0877e7",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/si-pre-allocate-wwm-regs-invalidate-rci.mir",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c990d3ec68ad8982c60430757c50cb5cda86012",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/si-pre-allocate-wwm-regs-preserve-rci.mir"
    },
    {
      "type": "modify",
      "old_id": "39cced662567d26ca0cc78a353550a24717d333f",
      "old_mode": 33188,
      "old_path": "llvm/unittests/Target/AMDGPU/CMakeLists.txt",
      "new_id": "a2d0a0797b1febde9d71a1099958a6adbb322def",
      "new_mode": 33188,
      "new_path": "llvm/unittests/Target/AMDGPU/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "888f28c14ec2dc43362f5b3ccb51153da172a43d",
      "new_mode": 33188,
      "new_path": "llvm/unittests/Target/AMDGPU/RCIUpdateReservedRegsTest.cpp"
    }
  ]
}
