)]}'
{
  "commit": "d882db950f0fe3b4e1d850442475734b034e652f",
  "tree": "1ba435102ec1c793aff08ac3c82c13e7d1cd8f6c",
  "parents": [
    "9b8c7bea132601031aac18ddb5f14b58594c3d5a"
  ],
  "author": {
    "name": "Clément Béra",
    "email": "clementbera@google.com",
    "time": "Wed Sep 30 19:08:00 2026 +0200"
  },
  "committer": {
    "name": "Clement Bera",
    "email": "clementbera@google.com",
    "time": "Thu Oct 01 07:57:03 2026 -0700"
  },
  "message": "Skip redundant overlap computations in computeFreePositions\n\nFor each inactive interval, computeFreePositions called both\noverlaps() and nextOverlap(), which computes the same thing twice.\nIt also computed the overlap for intervals whose registers are all\nalready blocked, in which case the result is unused.\n\n- Call nextOverlap() once and skip intervals whose registers are all\n  blocked or outside the register constraint.\n- Exit nextOverlap() early when the two intervals are disjoint.\n\nChange-Id: Ia9b8a80712110d93f147a2cb78272267ba0e1fdb\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7bd8312c184dddc0de504be4dac63e48aae76051",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java",
      "new_id": "fe9911adcda526583d7d53cfcd0459021e6808a6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java"
    },
    {
      "type": "modify",
      "old_id": "59e419801d744e360edd5cc0dee593ed89b566ea",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/regalloc/LiveIntervals.java",
      "new_id": "d7268b3028118de5fcb94fb43a9c10526cd120ae",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/regalloc/LiveIntervals.java"
    }
  ]
}
