)]}'
{
  "commit": "fa27b1c0fcc1122ec5a3c11a50c9a85ab264bf8b",
  "tree": "70250c6716f1cf9ba2723199f45d8c1cad2d096f",
  "parents": [
    "e43aaf54aa59924a8cab4f92354c65c0fe5df9aa"
  ],
  "author": {
    "name": "Alex Vasile",
    "email": "48962821+Alex-Vasile@users.noreply.github.com",
    "time": "Mon Jun 29 08:55:49 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jun 29 14:55:49 2026 +0200"
  },
  "message": "[Metal] Carry export name separately from MSL entry point for name lookup (#24642)\n\nspirv-cross rewrites SPIR-V entry point names to be legal MSL/C\nidentifiers when serializing Metal executables: \u0027.\u0027 characters (codegen\ndispatch names like _dot_general_matmul_i32.i32.i32_...) become \u0027_\u0027, and\nreserved \u0027__\u0027 prefixes (stream builtins like __builtin_splat_i64) are\ndropped. The MetalSPIRV target stored only the rewritten MSL function\nname in PipelineDef.entry_point, and the runtime loaded pipeline-\u003ename\nfrom that same field -- so hal.executable.lookup.function, which\nreferences the original un-rewritten hal.executable.export symbol name,\ncould never match for any export whose name spirv-cross rewrites. This\nbroke every metal-spirv e2e test using such exports\n(dot/dot_general/convolution matmul kernels and\ncompare/dynamic_slice/gather stream builtins).\n\nAdd a dedicated always-present name field to PipelineDef carrying the\ncanonical hal.executable.export symbol name (populated from\nexportOp.getName() in the compiler), appended at the end of the table\nfor backward-compatible vtable layout. The runtime now sources\npipeline-\u003ename (used by lookup_function_by_name) from this field,\nkeeping entry_point as the MTLFunction name for -[MTLLibrary\nnewFunctionWithName:]. The loader falls back to entry_point when name is\nabsent for compatibility.\n\nVerified: dot_general (8/8), compare (15/15), and the full Metal CTS\nsuite\n(command_buffer_tests/queue_tests/dispatch_tests/queue_dispatch_tests,\n4/4) pass. Signed-off-by: Alex Vasile\n\u003c48962821+Alex-Vasile@users.noreply.github.com\u003e\n\nSigned-off-by: Alex Vasile \u003c48962821+Alex-Vasile@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5618a5bde07d229da7afbcb9a75ee3f934a6c37b",
      "old_mode": 33188,
      "old_path": "compiler/plugins/target/MetalSPIRV/MetalSPIRVTarget.cpp",
      "new_id": "feb61b22784f225687ea8f38eb6c26176aec6adc",
      "new_mode": 33188,
      "new_path": "compiler/plugins/target/MetalSPIRV/MetalSPIRVTarget.cpp"
    },
    {
      "type": "modify",
      "old_id": "87c644715305e1bc0c0feb9782e8b89781f362d4",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/metal/executable.m",
      "new_id": "f4a990a6bccf52a0d14a3f4e1f7d15511f9254d2",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/metal/executable.m"
    },
    {
      "type": "modify",
      "old_id": "fbee2ad4f98011d94a7a31f27b4976d7b5e0b944",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/schemas/metal_executable_def.fbs",
      "new_id": "550b7e8373ffa90b4a0051700668f08bbdb3f775",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/schemas/metal_executable_def.fbs"
    }
  ]
}
