)]}'
{
  "commit": "9c7b3047c428147eec84914d1bb2e103db28de98",
  "tree": "17af3f4e8ad79a2b6dc4fae2f6c04499b6d2dcb9",
  "parents": [
    "c5f1c694ac2bbb07887abd88983bf4bec00830fe"
  ],
  "author": {
    "name": "Teresa Johnson",
    "email": "tejohnson@google.com",
    "time": "Thu Oct 23 07:16:45 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Oct 23 07:16:45 2025 -0700"
  },
  "message": "[WPD] Reduce ThinLTO link time by avoiding unnecessary summary analysis (#164046)\n\nWe are scanning through every single definition of a vtable across all\ntranslation units which is unnecessary in most cases.\n\nIf this is a local, we want to make sure there isn\u0027t another local with\nthe same GUID due to it having the same relative path. However, we were\nalways scanning through every single summary in all cases.\n\nWe can now check the new HasLocal flag added in PR164647 ahead of the\nloop,\ninstead of checking on every iteration.\n\nThis cut down a large thin link by around 6%, which was over half the\ntime it spent in WPD.\n\nNote that we previously took the last conforming vtable summary, and now\nwe use the first. This caused a test difference in one somewhat\ncontrived test for vtables in comdats.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cdfee727387a5e537f825e7a4f05ff721222a407",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/IR/ModuleSummaryIndex.h",
      "new_id": "eb60bee309cf55eefcb2afe82479facf0bedbd47",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/IR/ModuleSummaryIndex.h"
    },
    {
      "type": "modify",
      "old_id": "a0f7ec6d5fae31dd27a00c64e9381f7a0a24714d",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp",
      "new_id": "6909a282b31292a087bf2491b2a21c7a106c4b02",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp"
    },
    {
      "type": "modify",
      "old_id": "1f0737b71925418241c55b57611fc10adbe356f8",
      "old_mode": 33188,
      "old_path": "llvm/test/ThinLTO/X86/devirt_external_comdat_same_guid.ll",
      "new_id": "d0b8d14777f524ac0ab94b81eb157b999195bef1",
      "new_mode": 33188,
      "new_path": "llvm/test/ThinLTO/X86/devirt_external_comdat_same_guid.ll"
    }
  ]
}
