)]}'
{
  "commit": "295ded212c73c102926967c8870d2ee3f2fcaf4b",
  "tree": "4d019b84039dda05892fe623c933adb7ff0634d3",
  "parents": [
    "77ac727c7f6cbe32ca8972b8c69bd32cba17b690"
  ],
  "author": {
    "name": "bjacob",
    "email": "benoitjacob@google.com",
    "time": "Thu Jun 01 06:10:13 2023 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Jun 01 06:10:13 2023 -0400"
  },
  "message": "Drop unused `_none` values in ukernel enums (#13877)\n\nThis is a minor optimization and arguably cleaner separation of\r\nvalidation vs implementation code, but the primary motivation was to\r\navoid a miscompile in LLVM/riscv32, explained in that comment in\r\n`mmt4d_internal.h`:\r\n\r\n```\r\n      // This unreachable statement is not just an optimization, it also works\r\n      // around a LLVM/riscv32 miscompile.\r\n\r\n      // When we used to have a iree_uk_mmt4d_type_none value equal to 0 and\r\n      // were returning it here, that caused this whole switch statement to be\r\n      // miscompiled by LLVM/riscv32 as if it were UB. That value was passed to\r\n      // `iree_uk_type_bit_count(x)`, which evaluates to `1\u003c\u003c(x - 3)`, which is\r\n      // UB if x\u003c3. So it was fair to treat that default: clause as UB, but\r\n      // LLVM/riscv32 was incorrectly treating the whole switch as UB.\r\n```",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5ea0034ed34ebfac91aed2ceeda2e754b4b5223b",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/mmt4d.c",
      "new_id": "d7ccc4480aa48c1bb6f905a39edac8e3f9e10020",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/mmt4d.c"
    },
    {
      "type": "modify",
      "old_id": "37cd87f6ede197ac29a7443632282653a5d65244",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/mmt4d_internal.h",
      "new_id": "ba5acf5c325755d38a23827b6f9ba283e7676533",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/mmt4d_internal.h"
    },
    {
      "type": "modify",
      "old_id": "3aaeca60e8a5e8cd00132d8dbd1ddfcb041a75a8",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/pack.c",
      "new_id": "e7e7a258609ecee82a59558b6744b207e9e5c7bb",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/pack.c"
    },
    {
      "type": "modify",
      "old_id": "e583536295e47c7c049607be2a9e2b7d9a209e80",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/pack_internal.h",
      "new_id": "ce9287434bce01f42a2ac1b2ab24966b58a83a73",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/pack_internal.h"
    },
    {
      "type": "modify",
      "old_id": "cbeeeb024b2daedc0df621fb20d11589fbd03441",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/unpack.c",
      "new_id": "4a3696e951319ea4556a84b57ba85e64b96f55a0",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/unpack.c"
    },
    {
      "type": "modify",
      "old_id": "3ffac8adee8e7b28335bd9b4ccb557488601ed89",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/builtins/ukernel/unpack_internal.h",
      "new_id": "3d48d82523f07ddfeb1d4e5f27583663bc273f6a",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/builtins/ukernel/unpack_internal.h"
    }
  ]
}
