)]}'
{
  "commit": "fd9bc85c546219b61b04556695c17f4ac3a4192a",
  "tree": "270e73d61cf866c04611f8c08b643dbae6c4b947",
  "parents": [
    "0db14571ad2dccdbcbec4f05e57a820e3a15c815"
  ],
  "author": {
    "name": "Steven Perron",
    "email": "stevenperron@google.com",
    "time": "Thu Sep 03 21:09:10 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Sep 03 21:09:10 2026 -0400"
  },
  "message": "spirv-opt: Add WhileEachInst to Module, InstructionList, and Graph (#6862)\n\nAdds WhileEachInst (const and non-const overloads) to:\n- InstructionList\n- Graph\n- Module\n\nAllows iterating through all instructions and terminating early when the\ncallback returns false. Adds unit tests to verify early termination.\n\nAlso:\n- Re-implements ForEachInst in terms of WhileEachInst across Module,\n  InstructionList, and Graph to reduce code duplication.\n- Unifies the section traversal order in Module::WhileEachInstImpl and\nadds a\n  static_assert to verify matching constness between ModuleT and InstT.\n- Includes trailing_dbg_line_info_ in both const and non-const\niteration.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bcb5b74aaa1dda0f2b3bf716bf24e3380e3b1510",
      "old_mode": 33188,
      "old_path": "source/opt/graph.cpp",
      "new_id": "ec00cfe655d1acaac45a79fb42e8da5540c713ae",
      "new_mode": 33188,
      "new_path": "source/opt/graph.cpp"
    },
    {
      "type": "modify",
      "old_id": "679db16f95da753df72ed45ede7a14d5daf9df41",
      "old_mode": 33188,
      "old_path": "source/opt/graph.h",
      "new_id": "3a71e1a3ad84eb91586b2079f4175e03066d6b4c",
      "new_mode": 33188,
      "new_path": "source/opt/graph.h"
    },
    {
      "type": "modify",
      "old_id": "b3e42745918284cdf36a4357c70b6b04cab28fcf",
      "old_mode": 33188,
      "old_path": "source/opt/instruction_list.h",
      "new_id": "4d9768a9012dacf32d818754a202e9fc18ef5f08",
      "new_mode": 33188,
      "new_path": "source/opt/instruction_list.h"
    },
    {
      "type": "modify",
      "old_id": "242ebd284818807380fe0b1e980b7d4bb267e7cf",
      "old_mode": 33188,
      "old_path": "source/opt/module.cpp",
      "new_id": "b63634c1041bf7e7d5a316e3ee37a49a84a212f2",
      "new_mode": 33188,
      "new_path": "source/opt/module.cpp"
    },
    {
      "type": "modify",
      "old_id": "f8733ff0d95291b5d3a14af55647592e130bea2e",
      "old_mode": 33188,
      "old_path": "source/opt/module.h",
      "new_id": "9cc46a92df6d1c9fc749762efa8ffdd6d1e2e3c8",
      "new_mode": 33188,
      "new_path": "source/opt/module.h"
    },
    {
      "type": "modify",
      "old_id": "b1fe645e90527b1372c01a1cada217319088a494",
      "old_mode": 33188,
      "old_path": "test/opt/module_test.cpp",
      "new_id": "cc78428aa1be079df65874257da9a8177eb6b540",
      "new_mode": 33188,
      "new_path": "test/opt/module_test.cpp"
    }
  ]
}
