)]}'
{
  "commit": "f3bea69d8d393e3ca0bd8282673aa7e7a6347cf6",
  "tree": "ee8964202fb69cf8a28e9752cba37b6b9de01bf7",
  "parents": [
    "199565e130bbf5a5b920cb3900c088b0add1a26b"
  ],
  "author": {
    "name": "Jelle Schühmacher",
    "email": "schuehmacher@roofline.ai",
    "time": "Wed Sep 30 12:30:07 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Sep 30 12:30:07 2026 +0200"
  },
  "message": "[PluginAPI] Experimental support for dynamic compiler plugins (#24892)\n\nLoad experimental compiler plugins at runtime with `--iree-load-plugin`\nor `IREE_LOAD_PLUGINS`. Validate plugin metadata and registration, and\nallow embedded compilers to recover from failed dynamic registrations.\n\nUse one automatically generated compatibility ID derived from the plugin\nAPI headers. This is not a full ABI fingerprint: plugins need matching\nIREE and LLVM/MLIR revisions, compatible toolchains, and aligned\nABI-affecting build settings. An attempt is made to document these\nrequirements and cover loader failures, but it should be considered\nexperimental.\n\nCo-authored-by: Jelle Schühmacher \u003cschuehmacher@roofline.ai\u003e\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\n\n---\n\n\u003csub\u003eStack created with \u003ca\nhref\u003d\"https://github.com/github/gh-stack\"\u003eGitHub Stacks CLI\u003c/a\u003e • \u003ca\nhref\u003d\"https://gh.io/stacks-feedback\"\u003eGive Feedback 💬\u003c/a\u003e\u003c/sub\u003e\n\n---------\n\nSigned-off-by: Jelle Schühmacher \u003cschuehmacher@roofline.ai\u003e\nCo-authored-by: Florian Walbroel \u003cflorian.walbroel@rwth-aachen.de\u003e\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "44d73b10d8b47e5f278028e4c9f450fb8b4f87e3",
      "old_mode": 33188,
      "old_path": "build_tools/bazel/abi_prefix.bzl",
      "new_id": "6d84a818daaa8e88f713fb200ef5948f8126315c",
      "new_mode": 33188,
      "new_path": "build_tools/bazel/abi_prefix.bzl"
    },
    {
      "type": "modify",
      "old_id": "b5647bc510756bf06b4f9d5e1b6ae1e43f98d381",
      "old_mode": 33188,
      "old_path": "build_tools/cmake/iree_renamed_link.cmake",
      "new_id": "c993ad0352420d1d06c5bee4d804da43f3622273",
      "new_mode": 33188,
      "new_path": "build_tools/cmake/iree_renamed_link.cmake"
    },
    {
      "type": "modify",
      "old_id": "12890e71be41d34122054973b71626921e1e7e01",
      "old_mode": 33188,
      "old_path": "build_tools/scripts/BUILD.bazel",
      "new_id": "a25500bcf4f6b6e7332beab6f7876bd1da7e18d5",
      "new_mode": 33188,
      "new_path": "build_tools/scripts/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ad0ac4814166c84dc978de6568db350bc5fad852",
      "new_mode": 33261,
      "new_path": "build_tools/scripts/gen_plugin_abi_hash.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1f2f2e8931691c94d0ca927f6c4203df915b2f23",
      "new_mode": 33188,
      "new_path": "build_tools/scripts/gen_plugin_abi_hash_test.py"
    },
    {
      "type": "modify",
      "old_id": "e0c9133c33585b5b7705f5b5bb29154861c499cb",
      "old_mode": 33188,
      "old_path": "compiler/lit.cfg.py",
      "new_id": "9df1c11f52fb4a4ae8b2ae34e7fc4f192580b263",
      "new_mode": 33188,
      "new_path": "compiler/lit.cfg.py"
    },
    {
      "type": "modify",
      "old_id": "a1d8b2903e800641aef04f1f091396728f7b89ff",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/API/Internal/CompilerDriver.cpp",
      "new_id": "909c1fd40b7c3473237e1aef51e9a8c6badfdcdf",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/API/Internal/CompilerDriver.cpp"
    },
    {
      "type": "modify",
      "old_id": "75dc57bff6d3d40e66f6b7bcfca037dd36f46bcd",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/API/Internal/IREEOptToolEntryPoint.cpp",
      "new_id": "b1c50b22a1bb703a187afeeca283301994ba96c8",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/API/Internal/IREEOptToolEntryPoint.cpp"
    },
    {
      "type": "modify",
      "old_id": "86ba0072582edfb656db9b2b1d0d3cc42e5cde70",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Pipelines/BUILD.bazel",
      "new_id": "34337de8cf878caebb2a6e0be75c834a49c8c2e2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Pipelines/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "063f2f4db7db6c04599c91058ce82b7433da7f5b",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/PluginAPI/BUILD.bazel",
      "new_id": "bb42dac6e0945dbb5b3876bc3b2b19d9a8bbaeac",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e4e74ec7438b867a9b03ad76a9216830213db5fa",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/PluginAPI/CMakeLists.txt",
      "new_id": "0de130fbb08291a9855ac37dacb0dd4ae6171da3",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a5f01b457e090b1b6ff21ec295ee6fa037920c37",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/PluginEntryPoint.h"
    },
    {
      "type": "modify",
      "old_id": "3ac9025a2029452a5b7e3bf30d8ba18778138ba6",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/PluginAPI/PluginManager.cpp",
      "new_id": "b18f260236f24b8032a6e5c8fb70548b231006ae",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/PluginManager.cpp"
    },
    {
      "type": "modify",
      "old_id": "ef194993d25d90299fc044aabaa2be7473347534",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/PluginAPI/PluginManager.h",
      "new_id": "c249b3d732b1c21c34ed3a2b958c0fcfa5e4ce8c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/PluginManager.h"
    },
    {
      "type": "modify",
      "old_id": "c2282dbef28a380985bfad0cb6dd65ca2fca3546",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/PluginAPI/README.md",
      "new_id": "23795df398929b81d59121fbf7c3f853fbce1e6c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "940df22e5c29e6d52d2bf7ad7a2892ec171112f2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a792201f9b313da9c628082b8fec2a4ce80d09e5",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9b1a777ea6c69c837330041f5bc6a5d770b3d2b7",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/abi_hash_mismatch.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "448eadb919c74c211aa12be4bdd739eee76eb3cd",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/duplicate_id.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a2453dd4930c97c798c1f49c447e33ebb02762d2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/embedding_registration_test.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a6b731dcd960183011ae1912f2164f27652bb71e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/hidden_visibility.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "291bda9654535240de84679ad6835956242c6665",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/invalid_options.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f1e8e60ef7318291438b053dd2dd02819c6d575d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/invalid_plugin.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "67d1d908121b4409057e1e81fa0e6100569c356c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/layout_mismatch.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5fc4b71d8633b129c660f5837af7addbd8fb8ffa",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/null_field.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ac11bfad8eaf7dc6e38871ee7cf7074eb4577c37",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/plugins/abi_hash_mismatch_plugin.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3629f591ce4050f89c9b94b1a3d2134b0d11243c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/plugins/duplicate_id_plugin.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6b2b00c29271f45df67125d7b782cfc9e755ca77",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/plugins/hidden_visibility_plugin.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d8612531b8d7f546ec51af8d85341186730a2fd6",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/plugins/invalid_plugin.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f4b533b1216edc849f9af73ba59923f4f8856338",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/plugins/layout_mismatch_plugin.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "34e4c0841cb2525690b067c8d49df286b5f6f6b9",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/plugins/null_field_plugin.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8318ee0b5f79bd31d7fe9252ab1c9e4b66fcbb9a",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/plugins/registration_failure_plugin.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "162a795afa67b3038a10aa9759469db2c6a22bec",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/plugins/static_collision_plugin.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6d1ae684a30dba3129b96d23fa318cedb79eef60",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/plugins/undefined_symbol_plugin.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "80356731decaaa995186247797a5c94c5b296e77",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/plugins/valid_plugin.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c0d63d4369a40bb4622caf580f1eed814003541",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/undefined_symbol.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "92bcb6422ea53c6250da6880b37b5da1202ed94a",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/PluginAPI/test/valid_plugin.txt"
    },
    {
      "type": "modify",
      "old_id": "5a8acd213473384902999cbec71527699299e763",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Tools/BUILD.bazel",
      "new_id": "58353ce0ff0770810ff3bc5c0b1fe1f1a524e6ba",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Tools/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "94242f290d34c25520681ffd4dde82d212ff401e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Tools/iree_compile_lib.cc",
      "new_id": "4abadbfa25612b06fd55cc13aec92b64a60e7705",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Tools/iree_compile_lib.cc"
    },
    {
      "type": "modify",
      "old_id": "050bed8656ffc0973f9c6bf2321a30c6e71a052a",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Utils/BUILD.bazel",
      "new_id": "19fa760ac1ff57f55bf4b0279febf99b3115d9fd",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Utils/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "71e39920e6bbb2282746b0ddd06856c5d0d76176",
      "old_mode": 33188,
      "old_path": "docs/website/docs/developers/building/cmake-options.md",
      "new_id": "3fd19651bf9c4f536b25a358d2fc10ca08fb8ac6",
      "new_mode": 33188,
      "new_path": "docs/website/docs/developers/building/cmake-options.md"
    }
  ]
}
