)]}'
{
  "commit": "5d4c0baa65415fddf5d9f9d8cde56053349e6adc",
  "tree": "a79df839a7353444c34da0e9c4827955d95ccf1e",
  "parents": [
    "eaefd3ff964f14e700b1c468aa2b4f20a4401028"
  ],
  "author": {
    "name": "Benoit Jacob",
    "email": "jacob.benoit.1@gmail.com",
    "time": "Tue Jan 30 12:53:13 2024 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jan 30 17:53:13 2024 +0000"
  },
  "message": "Nothing is unreachable (#16261)\n\nThis comes from debugging the mysterious crashes on CI on @mariecwhite\r\n\u0027s https://github.com/openxla/iree/pull/16259.\r\n\r\nDebugged:\r\nhttps://github.com/openxla/iree/pull/16259#issuecomment-1917417773\r\n\r\nThe motivation for these unreachable statements was a performance\r\nconcern that is no longer current on LLVMCPU now that inlining works\r\nreliably. The switch variables here are in practice always compile-time\r\nconstants so the whole switch statement vanishes in post-linking IR\r\noptimization passes. The only places where the unreachable still helps\r\nare: VMVX and ukernel own micro benchmarks and tests, and the impact is\r\nsmall, so it\u0027s not worth keeping.\r\n\r\nAs a bonus, this makes the fallback now automatic when adding a new\r\nmmt4d type not handled by existing architecture-sepcific code, so this\r\njust makes ukernels easier to extend, as evidenced by the fact that\r\n@mariecwhite did run into this.\r\n\r\nOne place had to retain an unreachable to work around a specific\r\ncompiler bug. As it\u0027s specific to one compiler, it doesn\u0027t need a\r\nportable macro to wrap around the unreachable builtin.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c73c385da56d75eb12cc1f0cc95462d75270ea45",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/arch/arm_64/mmt4d_arm_64_entry_point.c",
      "new_id": "19976e8487b724bc40320c82cb2829bc58fdde0e",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/arch/arm_64/mmt4d_arm_64_entry_point.c"
    },
    {
      "type": "modify",
      "old_id": "bb640140b5b6bf3a3a969661666c47f031c67637",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/arch/arm_64/query_tile_sizes_arm_64_entry_point.c",
      "new_id": "910b9bb8cf00fc52b41ec5d33b5c8d3280c67357",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/arch/arm_64/query_tile_sizes_arm_64_entry_point.c"
    },
    {
      "type": "modify",
      "old_id": "6e367d7da2c0843a07c95f7698d76956a6c7b206",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/arch/x86_64/mmt4d_x86_64_entry_point.c",
      "new_id": "153b96e499a36c7aa6b26b4c4dd773cb60f200c7",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/arch/x86_64/mmt4d_x86_64_entry_point.c"
    },
    {
      "type": "modify",
      "old_id": "1e20927db401aee9f1c99e6208d8d29b2ec85fbd",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/arch/x86_64/query_tile_sizes_x86_64_entry_point.c",
      "new_id": "2188f0a2cd15c53fc42a96bea8d05f251de792a9",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/arch/x86_64/query_tile_sizes_x86_64_entry_point.c"
    },
    {
      "type": "modify",
      "old_id": "afa25639a091eec9722c050a1b36885904caade6",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/common.h",
      "new_id": "8dca92e93ce6f5040ae57f83fe5e3c91fe720527",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/common.h"
    },
    {
      "type": "modify",
      "old_id": "ef2d4cea030e53701223e504994461ac545c2582",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/mmt4d_internal.h",
      "new_id": "bd036a3cae043cfe50dbbab185290f31c0a4e249",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/mmt4d_internal.h"
    },
    {
      "type": "modify",
      "old_id": "50a185f002bf20d8969ca189ae88a67ccfc7f079",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/mmt4d_tile.c",
      "new_id": "f7b58ce5ce47ff245adbe20aa93b0e0bc5355c3f",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/mmt4d_tile.c"
    },
    {
      "type": "modify",
      "old_id": "69db00a1ef3049e85d7e43b16423c565a7466853",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/pack_internal.h",
      "new_id": "177229bb7e8568f50164c1f1d4d7e6b2f0bb33dd",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/pack_internal.h"
    },
    {
      "type": "modify",
      "old_id": "ec9347748fc0e15571c9e2b8ed6c68eab498fb92",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/query_tile_sizes.c",
      "new_id": "47638f4e745751a92c411e8f4bd4e580f3d563ed",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/query_tile_sizes.c"
    },
    {
      "type": "modify",
      "old_id": "fc99f94624863e1c3bccc77ae7dd3fda6fa85523",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/unpack_internal.h",
      "new_id": "9504f1bf0eb97a04bd375494a5b01f7c44283576",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/unpack_internal.h"
    }
  ]
}
