)]}'
{
  "commit": "706f1dc8558316213eac02b0611f9cde6fd3d9c5",
  "tree": "e552cef46ba910548fbc3a782bf91d4ee1619c3b",
  "parents": [
    "5278681115c9099ca33183cbf91f3726ee962616"
  ],
  "author": {
    "name": "Jay Kwak",
    "email": "82421531+jkwak-work@users.noreply.github.com",
    "time": "Mon Apr 20 13:28:27 2026 -1000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Apr 20 23:28:27 2026 +0000"
  },
  "message": "Add DebugBuildIdentifier to the live worklist during initialization (#6626)\n\nDebugBuildIdentifier was missing from the set of NonSemantic debug\ninstructions added to the worklist in\nInitializeModuleScopeLiveInstructions. Instead it was handled in\nProcessGlobalValues (after the worklist is exhausted) using\nlive_insts_.Set() on its direct operands.\n\nlive_insts_.Set() marks an instruction live but does not enqueue it, so\ntransitive operand dependencies are never visited. In shaders where the\nonly use of a type (e.g. OpTypeInt) is through a constant that is itself\nonly referenced by DebugBuildIdentifier\u0027s flags argument, the type\ninstruction is not marked live and is incorrectly killed by ADCE.\n\nThe surviving constant then references a deleted type, producing invalid\nSPIR-V. Any subsequent pass that rebuilds the DefUseManager (e.g. CCP)\nwill fail with \"Definition is not registered.\"\n\nFix: include NonSemanticShaderDebugInfo100DebugBuildIdentifier in the\nworklist loop alongside the other always-live debug instructions. The\nworklist\u0027s transitive closure correctly marks all operand dependencies\nlive before global-value cleanup runs. The existing special-case code in\nProcessGlobalValues becomes unreachable for this opcode (IsLive returns\ntrue, so the early continue fires) and is now dead; it is left in\nplacefor safety.\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "698d4e66582017cdc0b1c0ac36926d76c875ab2c",
      "old_mode": 33188,
      "old_path": "source/opt/aggressive_dead_code_elim_pass.cpp",
      "new_id": "8ca2518e888b51750ce6e3f7a22507eedfa63dc4",
      "new_mode": 33188,
      "new_path": "source/opt/aggressive_dead_code_elim_pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "9665a18d5d90a57601a832887550a59c04fd71ca",
      "old_mode": 33188,
      "old_path": "test/opt/aggressive_dead_code_elim_test.cpp",
      "new_id": "2763afb670e8f5e3a208d40763de9f5e80cb93b4",
      "new_mode": 33188,
      "new_path": "test/opt/aggressive_dead_code_elim_test.cpp"
    }
  ]
}
