)]}'
{
  "commit": "070b3e99ac751c9e6cb38201e0eec68d72a55542",
  "tree": "b798e5d2717b69aa89cccd322f5518d37f9e47c0",
  "parents": [
    "12d1aa0c8430c9d8015bfb285aae7d5e260db8ad"
  ],
  "author": {
    "name": "Christudasan Devadasan",
    "email": "Christudasan.Devadasan@amd.com",
    "time": "Thu Jan 08 07:53:18 2026 +0000"
  },
  "committer": {
    "name": "Christudasan Devadasan",
    "email": "Christudasan.Devadasan@amd.com",
    "time": "Tue Jan 13 03:50:24 2026 +0000"
  },
  "message": "[InlineSpiller][AMDGPU] Implement subreg reload during RA spill\n\nCurrently, when a virtual register is partially used, the\nentire tuple is restored from the spilled location, even if\nonly a subset of its sub-registers is needed. This patch\nintroduces support for partial reloads by analyzing actual\nregister usage and restoring only the required sub-registers.\nThis improvement enhances register allocation efficiency,\nparticularly for cases involving tuple virtual registers.\nFor AMDGPU, this change brings considerable improvements\nin workloads that involve matrix operations, large vectors,\nand complex control flows.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5c35cd338feb600130c68eebe204cb28eb884fc5",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/CodeGen/TargetRegisterInfo.h",
      "new_id": "281053cd65922d060d733dd8c683afdc8a80fe8d",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/CodeGen/TargetRegisterInfo.h"
    },
    {
      "type": "modify",
      "old_id": "68370303a3aef27c6a7475edcbc5ddc6b507964d",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/InlineSpiller.cpp",
      "new_id": "c567b88f66a7c58e60c7ae0b155ac90162ab2ddc",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/InlineSpiller.cpp"
    },
    {
      "type": "modify",
      "old_id": "7dee976ae3c50c0aa3d32af518bfc73697dfc971",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/AMDGPU/SIInstrInfo.cpp",
      "new_id": "0b9f56c1bcd44146c79280220e2b37d0a47f750e",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/AMDGPU/SIInstrInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "4777e06a001f0b1ac244cd3990b91bfc154b734c",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp",
      "new_id": "d7d56482ea4d3483d47288a588bee80272ebc0e3",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "4c8e217aa5007b4d4d3f1d566702022b9dbc8721",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/AMDGPU/SIRegisterInfo.h",
      "new_id": "60cc7761808169c34c2bcc06f4696a7e9630afa3",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/AMDGPU/SIRegisterInfo.h"
    },
    {
      "type": "modify",
      "old_id": "2fef934fa472ebbf1c583f8ecee2f724822300d8",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll",
      "new_id": "c423b8a704b54050f61c0972f75f594508d19634",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll"
    },
    {
      "type": "modify",
      "old_id": "3e2b488d02f371593e46bcfbac208db1ce26943c",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll",
      "new_id": "cc0e867c71a4b3963bee60b130e6b76deccfebbb",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll"
    },
    {
      "type": "modify",
      "old_id": "4372f11f8ab4ad9469ff381e01bdbb376082fd8c",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll",
      "new_id": "844052ccb0f51f3827244a1e8ed97bb53d7b56dd",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll"
    },
    {
      "type": "modify",
      "old_id": "5c7c07632f0d59dcf5ba72be12935f1c7908c53e",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/dummy-regalloc-priority-advisor.mir",
      "new_id": "5b7e787dc080621c6c168f5d4728fcd54bd0b58d",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/dummy-regalloc-priority-advisor.mir"
    },
    {
      "type": "modify",
      "old_id": "c06011c259f9ba03c5ece99ca8b0d2c6bf85d7eb",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll",
      "new_id": "1b15654ed6b4e550452271006899f08ee5f80d4e",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll"
    },
    {
      "type": "modify",
      "old_id": "76f204dd0c16abc786c9f7a7b22d7d111c04d375",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/identical-subrange-spill-infloop.ll",
      "new_id": "f86a740e47bef6fde16340e60022c7add48d3118",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/identical-subrange-spill-infloop.ll"
    },
    {
      "type": "modify",
      "old_id": "06c3da09eede9eac378a589883f985b704fa5106",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/inflated-reg-class-snippet-copy-use-after-free.mir",
      "new_id": "e5ec0d85ff6adf088ab9b56ecd9fa0192a72f654",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/inflated-reg-class-snippet-copy-use-after-free.mir"
    },
    {
      "type": "modify",
      "old_id": "e1cbeb9ea93800b810649861ac8c16888ff286ed",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/infloop-subrange-spill-inspect-subrange.mir",
      "new_id": "4c15dfeaa0296de8faf21ceef3e15304c87b2ab9",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/infloop-subrange-spill-inspect-subrange.mir"
    },
    {
      "type": "modify",
      "old_id": "b8818c5550ad4405e49562d21f4dea2da56f25ce",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/infloop-subrange-spill.mir",
      "new_id": "e32ffbc0dd00db0509f06d31104e91a9eb850839",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/infloop-subrange-spill.mir"
    },
    {
      "type": "modify",
      "old_id": "388006281abdcd64c55b81a8df8a0d47d2a5890a",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/load-global-i16.ll",
      "new_id": "d921780ff7ff3e88de3bd8d9305041f50f56c9e4",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/load-global-i16.ll"
    },
    {
      "type": "modify",
      "old_id": "0c399d65d01ccafb12528c37d6f8bf76551b83d2",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/load-global-i8.ll",
      "new_id": "9f983cc3a23dbb21a3bf81691beb6ecaf9eacdb4",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/load-global-i8.ll"
    },
    {
      "type": "modify",
      "old_id": "f0117bced9e49b6594c6598e73c025ddbdb4bed5",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/ra-inserted-scalar-instructions.mir",
      "new_id": "e80ff6796b388968df09a7a9e2ee63502cc36732",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/ra-inserted-scalar-instructions.mir"
    },
    {
      "type": "modify",
      "old_id": "8d541f6aadfa2f6927d944f92452e057034b66b0",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/ran-out-of-sgprs-allocation-failure.mir",
      "new_id": "63b61b6023c53ab7b557b2da3dbee1aa427ee8dc",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/ran-out-of-sgprs-allocation-failure.mir"
    },
    {
      "type": "modify",
      "old_id": "a0993d7e35176c017e0d6ec6bec2b1afaedf31a6",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/regpressure-mitigation-with-subreg-reload.mir",
      "new_id": "26249c008531f352dffa551da7d0cab95b8ca52f",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/regpressure-mitigation-with-subreg-reload.mir"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f363f17e16ae1a75f1f2fc090938f1a19f694c98",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/skip-partial-reload-for-16bit-regaccess.mir"
    },
    {
      "type": "modify",
      "old_id": "b5474b8974b29477a78eb5572612797da77a05c4",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll",
      "new_id": "ef193edb8636a42a47cffa086973790cba78b52e",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll"
    },
    {
      "type": "modify",
      "old_id": "2e2d8be29576bcf472c6cd8cb105dbe38a81d791",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/splitkit-copy-bundle.mir",
      "new_id": "378454c416226179dd5fa785e75d72428e3349e3",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/splitkit-copy-bundle.mir"
    },
    {
      "type": "modify",
      "old_id": "42db92b15acf50888f602486ac817862d92bb086",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/splitkit-copy-live-lanes.mir",
      "new_id": "fb3ab863053f31f053f1b4c6aa8050f7a65af956",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/splitkit-copy-live-lanes.mir"
    },
    {
      "type": "modify",
      "old_id": "e13c184942ae6a092cbc39459bea85e8aac630a3",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/splitkit-nolivesubranges.mir",
      "new_id": "4df1fee11e190aadf3f7fe6783d34c6ef6e5061f",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/splitkit-nolivesubranges.mir"
    },
    {
      "type": "modify",
      "old_id": "bc8a383a285b2f8d201130ff5b2ab3043fe3b8e6",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/swdev502267-use-after-free-last-chance-recoloring-alloc-succeeds.mir",
      "new_id": "5e906cc9b8783ad01c013bf705cd95c8b1951699",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/swdev502267-use-after-free-last-chance-recoloring-alloc-succeeds.mir"
    },
    {
      "type": "delete",
      "old_id": "50efc06237d5b92fe77e96e7928c219aac19a6d0",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/AMDGPU/use-after-free-after-cleanup-failed-vreg.ll",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
