)]}'
{
  "commit": "769a9058c8d04fc920994f6a5bbb03c8a4fbcd05",
  "tree": "d1bb31fe15eda4028eda3fae55464fca86a03c85",
  "parents": [
    "07d3a73d70cac6e58ca9002c98e31423c26cc735"
  ],
  "author": {
    "name": "Matt Arsenault",
    "email": "Matthew.Arsenault@amd.com",
    "time": "Fri Aug 15 09:02:56 2025 +0900"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Aug 15 09:02:56 2025 +0900"
  },
  "message": "TableGen: Emit statically generated hash table for runtime libcalls (#150192)\n\na96121089b9c94e08c6632f91f2dffc73c0ffa28 reverted a change\nto use a binary search on the string name table because it\nwas too slow. This replaces it with a static string hash\ntable based on the known set of libcall names. Microbenchmarking\nshows this is similarly fast to using DenseMap. It\u0027s possibly\nslightly slower than using StringSet, though these aren\u0027t an\nexact comparison. This also saves on the one time use construction\nof the map, so it could be better in practice.\n\nThis search isn\u0027t simple set check, since it does find the\nrange of possible matches with the same name. There\u0027s also\nan additional check for whether the current target supports\nthe name. The runtime constructed set doesn\u0027t require this,\nsince it only adds the symbols live for the target.\n\nFollowed algorithm from this post\nhttp://0x80.pl/notesen/2023-04-30-lookup-in-strings.html\n\nI\u0027m also thinking the 2 special case global symbols should\njust be added to RuntimeLibcalls. There are also other global\nreferences emitted in the backend that aren\u0027t tracked; we probably\nshould just use this as a centralized database for all compiler\nselected symbols.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1078efa55f4975bd30f55b3ee5234e566a649e4e",
      "old_mode": 33188,
      "old_path": "llvm/benchmarks/CMakeLists.txt",
      "new_id": "9613678d2e0acf172f63db1ebd6b1068086e1f16",
      "new_mode": 33188,
      "new_path": "llvm/benchmarks/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "47f68abff1e0df15a9215bee9509352b36e24a4c",
      "new_mode": 33188,
      "new_path": "llvm/benchmarks/RuntimeLibcalls.cpp"
    },
    {
      "type": "modify",
      "old_id": "2d1d07c5fd81bc5446a844f39ce5d84acc24a7fd",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/IR/RuntimeLibcalls.h",
      "new_id": "078098eeb71486de99c86d8469cdb3f4483ec5e6",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/IR/RuntimeLibcalls.h"
    },
    {
      "type": "modify",
      "old_id": "ac845c49987830a932fda944b34e1c92c985ed6f",
      "old_mode": 33188,
      "old_path": "llvm/lib/IR/RuntimeLibcalls.cpp",
      "new_id": "88cb192c087815720a9015288f0baead9559b196",
      "new_mode": 33188,
      "new_path": "llvm/lib/IR/RuntimeLibcalls.cpp"
    },
    {
      "type": "modify",
      "old_id": "0f194953787e604535447eaa8d0634400723db65",
      "old_mode": 33188,
      "old_path": "llvm/lib/Object/IRSymtab.cpp",
      "new_id": "0043f02107fb8e9b45fb6e817b3da7a4d5f5e8e3",
      "new_mode": 33188,
      "new_path": "llvm/lib/Object/IRSymtab.cpp"
    },
    {
      "type": "modify",
      "old_id": "a2d946f3aa84fa8c2fe2190c5ddf532baa6269fa",
      "old_mode": 33188,
      "old_path": "llvm/test/TableGen/RuntimeLibcallEmitter.td",
      "new_id": "54ca3f97e2d4b8045dfab5e916676c8879a6b9d9",
      "new_mode": 33188,
      "new_path": "llvm/test/TableGen/RuntimeLibcallEmitter.td"
    },
    {
      "type": "modify",
      "old_id": "b66eae93f9339bfce1933f1244e0904d52a4bcd1",
      "old_mode": 33188,
      "old_path": "llvm/unittests/IR/CMakeLists.txt",
      "new_id": "8b7bd3997ea27583d6f13512c5a86248252cd556",
      "new_mode": 33188,
      "new_path": "llvm/unittests/IR/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "94ed56e92bd551299d2340f0109374b5daee1f5e",
      "new_mode": 33188,
      "new_path": "llvm/unittests/IR/RuntimeLibcallsTest.cpp"
    },
    {
      "type": "modify",
      "old_id": "0fc230c4714f07d2f397547210d46f4e9ea0a201",
      "old_mode": 33188,
      "old_path": "llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp",
      "new_id": "775cef22db0b65b6cf1cc1fb960ce4b12d26f113",
      "new_mode": 33188,
      "new_path": "llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp"
    }
  ]
}
