)]}'
{
  "commit": "ce7f86949d5f951292f1a276808ebd75696b691d",
  "tree": "7e8009f5e60fb8f96167e4b8244a69dc7a99dd1f",
  "parents": [
    "031e1639e6b15b90b4224105ed62484e52d806a6"
  ],
  "author": {
    "name": "Steven Fontanella",
    "email": "stevenfont@google.com",
    "time": "Mon Apr 13 23:07:58 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Apr 13 23:07:58 2026"
  },
  "message": "Refactor graph traversal in GlobalEffects (#8593)\n\nRefactor GlobalEffects to not compute the transitive call graph\nexplicitly but instead aggregate effects as we go. This improves the\nruntime of the pass by 4.3% on calcworker (1.21792 s -\u003e 1.16586 s\naveraged over 20 compilations). It also helps prepare the code for\nfuture changes to support effects for indirect calls.\n\nAnother potential future improvement here is to use SCC, which would let\nus stop processing children early in cases where there are no effects to\nupdate. Currently we can\u0027t do this because we add trap effects to\npotentially-recursive call loops, so even if no effects were updated, we\nneed to keep going to find potential cycles.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ef0977d12fae94892d9618afb9a503bcdd70a03b",
      "old_mode": 33188,
      "old_path": "src/passes/GlobalEffects.cpp",
      "new_id": "ac17037902b2c08bb4eab192a7b40cfbc432039f",
      "new_mode": 33188,
      "new_path": "src/passes/GlobalEffects.cpp"
    }
  ]
}
