)]}'
{
  "commit": "8c755ec26d8e9800afbc485c7f8b44b058644174",
  "tree": "1f3dff3004a4a1bc842f37a6cd635a6d2059dc7a",
  "parents": [
    "7a8c0230d70b765d0a1e8e6416c6e2389482fb7a"
  ],
  "author": {
    "name": "Fangrui Song",
    "email": "i@maskray.me",
    "time": "Fri Jul 17 00:34:28 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Jul 17 00:36:38 2026 -0700"
  },
  "message": "[CycleInfo] Represent cycles by an opaque handle. NFC (#210117)\n\nConsumers refer to a cycle by a GenericCycle pointer into\nGenericCycleInfo\u0027s storage. Introduce GenericCycleRef, a value handle\nwrapping the cycle\u0027s preorder index, and route every GenericCycleInfo\nquery and mutation through it. GenericCycle becomes an internal\nimplementation detail, so its storage representation can change without\ntouching callers.\n\nAided by Claude Opus 4.8, reviewed by Fable 5\n\nSuggested by\nhttps://github.com/llvm/llvm-project/pull/208614#pullrequestreview-4683378136\n\nGitOrigin-RevId: cc98c1eb84c690c65fba77b72c269a869978c898\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dc9495ce57bfd66c57c9a05e546b52f279959e5b",
      "old_mode": 33188,
      "old_path": "include/llvm/ADT/GenericConvergenceVerifier.h",
      "new_id": "bc4efe25eb05c44e363428d3610bcdb04ee97334",
      "new_mode": 33188,
      "new_path": "include/llvm/ADT/GenericConvergenceVerifier.h"
    },
    {
      "type": "modify",
      "old_id": "779a6eb813401cd9868878f69e060bfc70479394",
      "old_mode": 33188,
      "old_path": "include/llvm/ADT/GenericCycleImpl.h",
      "new_id": "092f7bd16a71f8216d1df5a21273c0fa914019df",
      "new_mode": 33188,
      "new_path": "include/llvm/ADT/GenericCycleImpl.h"
    },
    {
      "type": "modify",
      "old_id": "8b706f598630796bcfc0ef2fd2fcd807fec452ba",
      "old_mode": 33188,
      "old_path": "include/llvm/ADT/GenericCycleInfo.h",
      "new_id": "d827f963b8d795da611f140ca083075553829b9c",
      "new_mode": 33188,
      "new_path": "include/llvm/ADT/GenericCycleInfo.h"
    },
    {
      "type": "modify",
      "old_id": "3f78b21edd8a9b38a5cc6682f4802de4ce20682e",
      "old_mode": 33188,
      "old_path": "include/llvm/ADT/GenericUniformityImpl.h",
      "new_id": "737efde1d5e88e0b836cb0f99149b913f6e71a3d",
      "new_mode": 33188,
      "new_path": "include/llvm/ADT/GenericUniformityImpl.h"
    },
    {
      "type": "modify",
      "old_id": "e8d09817781652a564cc54a37ab0df389e26f7a4",
      "old_mode": 33188,
      "old_path": "include/llvm/ADT/GenericUniformityInfo.h",
      "new_id": "594d6f8bd1f60f21b1ce23358c194a3b210cde23",
      "new_mode": 33188,
      "new_path": "include/llvm/ADT/GenericUniformityInfo.h"
    },
    {
      "type": "modify",
      "old_id": "a9890b2fe00c0931afd5b012431508007f409360",
      "old_mode": 33188,
      "old_path": "include/llvm/CodeGen/MachineCycleAnalysis.h",
      "new_id": "341175a562fe0803863b7363897aec6f06e73be2",
      "new_mode": 33188,
      "new_path": "include/llvm/CodeGen/MachineCycleAnalysis.h"
    },
    {
      "type": "modify",
      "old_id": "bf719fdfe9693ce85be318fbe087a53466df4140",
      "old_mode": 33188,
      "old_path": "include/llvm/IR/CycleInfo.h",
      "new_id": "4e11c2cc16ae646d7aea7b90168ded1ea978b241",
      "new_mode": 33188,
      "new_path": "include/llvm/IR/CycleInfo.h"
    },
    {
      "type": "modify",
      "old_id": "19b03a0e581ff59fc203e2dc56ccb62a2bf50aec",
      "old_mode": 33188,
      "old_path": "include/llvm/IR/GenericConvergenceVerifierImpl.h",
      "new_id": "8d38c38c70f6f332b8d537bf6662f27a10ed8f78",
      "new_mode": 33188,
      "new_path": "include/llvm/IR/GenericConvergenceVerifierImpl.h"
    },
    {
      "type": "modify",
      "old_id": "f4a57df755cb2bc2a9c31f8be8b5e306278f174c",
      "old_mode": 33188,
      "old_path": "lib/Analysis/CFG.cpp",
      "new_id": "6edd5a1909abc07c198250f454342d8a26a8f39b",
      "new_mode": 33188,
      "new_path": "lib/Analysis/CFG.cpp"
    },
    {
      "type": "modify",
      "old_id": "835d3efe7d4e9dd2d8342414c80b256681b9fbbc",
      "old_mode": 33188,
      "old_path": "lib/Analysis/UniformityAnalysis.cpp",
      "new_id": "c07119d7002857bc02ac9e1dcbaebfa62ba93834",
      "new_mode": 33188,
      "new_path": "lib/Analysis/UniformityAnalysis.cpp"
    },
    {
      "type": "modify",
      "old_id": "adefedc65ca5520b469fc6488c861b0462345c6a",
      "old_mode": 33188,
      "old_path": "lib/CodeGen/MachineCycleAnalysis.cpp",
      "new_id": "8118e99a1ed52b2be676c822ec96be789aca9d9f",
      "new_mode": 33188,
      "new_path": "lib/CodeGen/MachineCycleAnalysis.cpp"
    },
    {
      "type": "modify",
      "old_id": "0e2ce14876183f9b796383983d8cce7997939ce3",
      "old_mode": 33188,
      "old_path": "lib/CodeGen/MachineSink.cpp",
      "new_id": "aefdc76f0e0faba18d1cae94e5fb0e721f839ae8",
      "new_mode": 33188,
      "new_path": "lib/CodeGen/MachineSink.cpp"
    },
    {
      "type": "modify",
      "old_id": "8b5dd5dae44b30f84f50aaeb7c89dd230ad0eb4e",
      "old_mode": 33188,
      "old_path": "lib/CodeGen/MachineUniformityAnalysis.cpp",
      "new_id": "21c5cd75ee799d483cbe1ca5220553b0bc0a2bce",
      "new_mode": 33188,
      "new_path": "lib/CodeGen/MachineUniformityAnalysis.cpp"
    },
    {
      "type": "modify",
      "old_id": "a9b9129f24f09878e7a2e83668aa299ac1c0b156",
      "old_mode": 33188,
      "old_path": "lib/IR/CycleInfo.cpp",
      "new_id": "5353a303cb15511e2150853f3d6987cd74070dbd",
      "new_mode": 33188,
      "new_path": "lib/IR/CycleInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "538bc72102e3ff243df364c84344ac0f98ce1540",
      "old_mode": 33188,
      "old_path": "lib/Target/AMDGPU/AMDGPUGlobalISelDivergenceLowering.cpp",
      "new_id": "1f8d2019293ffef941dcf81317c00321594bbb9c",
      "new_mode": 33188,
      "new_path": "lib/Target/AMDGPU/AMDGPUGlobalISelDivergenceLowering.cpp"
    },
    {
      "type": "modify",
      "old_id": "2395c326dc3fc0242d1317da04608bd13a530121",
      "old_mode": 33188,
      "old_path": "lib/Target/AMDGPU/SIInstrInfo.cpp",
      "new_id": "167df06fabc77604e047d8c5807e1d9a63011a28",
      "new_mode": 33188,
      "new_path": "lib/Target/AMDGPU/SIInstrInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "cde821bfb8ba8230f6ee4f7639c2767b760413b8",
      "old_mode": 33188,
      "old_path": "lib/Target/AMDGPU/SILowerSGPRSpills.cpp",
      "new_id": "8cc7714c6fa2ef97d0123aeee03d1a5be34a7729",
      "new_mode": 33188,
      "new_path": "lib/Target/AMDGPU/SILowerSGPRSpills.cpp"
    },
    {
      "type": "modify",
      "old_id": "fb70ee86920caa3f9fde4e562ceee617a01f9306",
      "old_mode": 33188,
      "old_path": "lib/Transforms/IPO/AttributorAttributes.cpp",
      "new_id": "050bc323552531f6b8c29f8a7fafb29359f569fc",
      "new_mode": 33188,
      "new_path": "lib/Transforms/IPO/AttributorAttributes.cpp"
    },
    {
      "type": "modify",
      "old_id": "6bc77b7583b24bfd13a81029f78fbcee11ee2a8d",
      "old_mode": 33188,
      "old_path": "lib/Transforms/Scalar/DeadStoreElimination.cpp",
      "new_id": "ed86bf8e68bbb8de27de430eb38b2744103eddf8",
      "new_mode": 33188,
      "new_path": "lib/Transforms/Scalar/DeadStoreElimination.cpp"
    },
    {
      "type": "modify",
      "old_id": "ea4f4684185662d4856f41f5c9c426bf967ef1c4",
      "old_mode": 33188,
      "old_path": "lib/Transforms/Utils/BasicBlockUtils.cpp",
      "new_id": "5d1faec67bddd9871fd0f6260d1ddc2ef7a13ac1",
      "new_mode": 33188,
      "new_path": "lib/Transforms/Utils/BasicBlockUtils.cpp"
    },
    {
      "type": "modify",
      "old_id": "b6bed8413c3fe9a080bc815c77dec99d0812497b",
      "old_mode": 33188,
      "old_path": "lib/Transforms/Utils/FixIrreducible.cpp",
      "new_id": "77e8cb838ca752a05ee6bd6e51a0264ff9b4b7d3",
      "new_mode": 33188,
      "new_path": "lib/Transforms/Utils/FixIrreducible.cpp"
    }
  ]
}
