)]}'
{
  "commit": "4e73fc6efe1e552811eb71aa6fcc949c6c387bfe",
  "tree": "cdae3c60298c5d81fe471edf370a2dae2a53f9b4",
  "parents": [
    "ad3da3cf1f44b4f4c98e202f5602443bfead08ff"
  ],
  "author": {
    "name": "Matt Arsenault",
    "email": "Matthew.Arsenault@amd.com",
    "time": "Thu Sep 24 08:36:40 2026 +0200"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Sep 23 23:43:34 2026 -0700"
  },
  "message": "CodeGen: Suppress per-invoke EH labels via an MCAsmInfo object predicate (#225903)\n\nThis is to avoid depending on TargetOptions::ExceptionModel in the\nX86ISelLowering constructor. This was used to legalize EH_LABEL to a\nnop. Legality rules cannot depend on program state, and the exception model\nshould be read from the IR module flag. In this instance the exception model\nisn\u0027t really the relevant property. The specific personality and the target\nobject\u0027s EH table format are. Introduce a new MCAsmInfo predicate which\nis a known constant for the triple. Also just do this during the initial label\nemission instead of leaving it to legalization. This cleans up some unused\nlabels for wasm. This is also a minor behavior change for unknown\npersonalities; the labels will now be conservatively emitted.\n\nI don\u0027t know all that much about exceptions, there\u0027s a lot of AI reverse\nengineering of intent here. Another bruteforce approach would be to just\nrelocate the current condition to the selector which has access to the\nexception model, but the MCAsmInfo check will be reusable in other\ncontexts.\n\nCo-authored-by: Claude (Claude-Opus-4.8) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 0f6b03f1ecb134c58aaa6a79b9320b3c30f15ef8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "59eeede5a7839783da7bb0a00751f959c8ebe773",
      "old_mode": 33188,
      "old_path": "include/llvm/MC/MCAsmInfo.h",
      "new_id": "9805e8ae571208dd010a9a7afcad94bbdb484062",
      "new_mode": 33188,
      "new_path": "include/llvm/MC/MCAsmInfo.h"
    },
    {
      "type": "modify",
      "old_id": "bd9c47806a9ca08eee70ed3e9cb867ee8668a7b7",
      "old_mode": 33188,
      "old_path": "lib/CodeGen/SelectionDAG/LegalizeDAG.cpp",
      "new_id": "15d82359e86820d617126b322a7d1e4ee71f39a4",
      "new_mode": 33188,
      "new_path": "lib/CodeGen/SelectionDAG/LegalizeDAG.cpp"
    },
    {
      "type": "modify",
      "old_id": "eea69e41b26ebcc63944a8c7ff446d2df1e211cb",
      "old_mode": 33188,
      "old_path": "lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp",
      "new_id": "7d185031d7d379dab8080ac467dbd49a1e170ab3",
      "new_mode": 33188,
      "new_path": "lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp"
    },
    {
      "type": "modify",
      "old_id": "13a30041c8d73c122e9db8502e01136c9cbf2a08",
      "old_mode": 33188,
      "old_path": "lib/Target/X86/X86ISelLowering.cpp",
      "new_id": "e2f3b5f3cd3d5e5e2e8dcb787c410592743552a9",
      "new_mode": 33188,
      "new_path": "lib/Target/X86/X86ISelLowering.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "510b471309e2e3456c5d0dc7130d35592ec9e529",
      "new_mode": 33188,
      "new_path": "test/CodeGen/WebAssembly/eh-invoke-label-suppression.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2787b1f3c5444480e7c7351ecf618ddb0392e763",
      "new_mode": 33188,
      "new_path": "test/CodeGen/X86/eh-labels-unknown-personality.ll"
    }
  ]
}
