)]}'
{
  "commit": "90ccddbb62567c1da13ea522be806b24cf9af8a2",
  "tree": "80a58f394c7baaa23de1d8dbd90d62da2bf7f303",
  "parents": [
    "076b9242f61deb81ed331315adae7a719218c82b"
  ],
  "author": {
    "name": "Christoffer Adamsen",
    "email": "christofferqa@google.com",
    "time": "Thu Jan 08 10:39:49 2026 +0100"
  },
  "committer": {
    "name": "Christoffer Adamsen",
    "email": "christofferqa@google.com",
    "time": "Thu Jan 08 01:59:09 2026 -0800"
  },
  "message": "Always pick pinned argument register in 4 bit register allocation\n\nSome older Android runtimes expect the receiver `this` to always be present in the incoming argument register. The register allocator therefore extends the live range of the `this` value to cover the entire method.\n\nDue to invoke/range instructions, the live intervals for the `this` value may be split. The split children covering invoke/range instructions are minimal by construction. All the other split children that do not overlap any invoke/range instructions must be assigned the argument\u0027s incoming register.\n\nThis was already the case in 8 bit and 16 bit register allocation, but the 4 bit register allocation did not cover this case. This meant that in some cases, register allocation would materialize move instructions from the incoming argument register of `this` to a different register, which was effectively unused.\n\nThis issue is avoided by ensuring that all split children not covering an invoke/range instruction are assigned the incoming argument register of `this`.\n\nBug: b/468253695\nChange-Id: Ib8c083bc2a5e5b36a02ff9353242fbe4304c2c12\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0672473959495c028d080171b9dc5a52045030d3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java",
      "new_id": "5f19bfb970ec4b68d9f7088536c07ae008e1c429",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java"
    }
  ]
}
