)]}'
{
  "commit": "a07e49f70b2f3b16c116c4db70c29be4c65fe56a",
  "tree": "579c66b9186cc9021925337c8c6d4af2252797cd",
  "parents": [
    "d0734df2c434c15815b2a9086102f3329dbd0a2a"
  ],
  "author": {
    "name": "jofrn",
    "email": "jo7frn1@gmail.com",
    "time": "Sat Jun 20 06:17:22 2026 -0700"
  },
  "committer": {
    "name": "jofrn",
    "email": "jo7frn1@gmail.com",
    "time": "Wed Jul 01 21:47:21 2026 -0700"
  },
  "message": "[Target] Add target-independent TargetVerifier dispatcher\n\nIntroduce a target-dependent IR verification framework that can be run\nfrom target-independent locations.\n\nTargetVerify is a base class each backend subclasses to check a function\nfor constructs that are invalid for a particular target. Backends\nregister a factory keyed by Triple::ArchType via registerTargetVerify(),\ntypically from their LLVMInitialize\u003cTarget\u003eTarget().\n\nTargetVerifierPass (registered as \"target-verifier\") is the dispatcher:\nit reads the module triple and, if a verifier is registered for that\narchitecture, runs the generic IR verifier followed by the target\u0027s\nTargetVerify. It is a no-op for targets that have not registered a\nverifier, so it is safe to schedule from generic, target-independent\npipelines (e.g. `opt -passes\u003dtarget-verifier`).\n\ncreateTargetVerifierPass() is a legacy-PM wrapper that TargetPassConfig\nadds to the codegen pipeline under -verify-target, so the target verifier\ncan also run from llc (e.g. `llc -verify-target`).\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2c9a848bb6fbafcf05660dd366dfb8655a35b632",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/InitializePasses.h",
      "new_id": "e086ed38daee063aff9c233b075a45e64c125332",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/InitializePasses.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f9751d8a98c19a1cbb8f13adeef0ef6afb4e3a53",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/Target/TargetVerifier.h"
    },
    {
      "type": "modify",
      "old_id": "4a76aba55b78b6e0b993a7adc176707557861cb3",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/TargetPassConfig.cpp",
      "new_id": "5018988ea97d8937d4c40947ced7772c78b66718",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/TargetPassConfig.cpp"
    },
    {
      "type": "modify",
      "old_id": "e88b81a13fae99132ad05dba2cbf4f6397a496ae",
      "old_mode": 33188,
      "old_path": "llvm/lib/Passes/PassBuilder.cpp",
      "new_id": "92cbc8efe5a82a1a21e6a0d0d8d6fc01b7f4e721",
      "new_mode": 33188,
      "new_path": "llvm/lib/Passes/PassBuilder.cpp"
    },
    {
      "type": "modify",
      "old_id": "8f70c7cefa408aa539f1fa2d5f49486de6d0bb62",
      "old_mode": 33188,
      "old_path": "llvm/lib/Passes/PassRegistry.def",
      "new_id": "ef8487bbc292db10c79676af3f856ee4a2d875c5",
      "new_mode": 33188,
      "new_path": "llvm/lib/Passes/PassRegistry.def"
    },
    {
      "type": "modify",
      "old_id": "bcc13f942bf965609e033e7a23af6c0cc9d322de",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/CMakeLists.txt",
      "new_id": "2b3b164e7119c9b5032185103b79b299154634fb",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e76ff09648e9fc3996fb7d32de377853bb14c0c0",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/TargetVerifier.cpp"
    }
  ]
}
