)]}'
{
  "commit": "c9f573463ebd7b4e46da4877802f2364f700e54a",
  "tree": "f5d6f01aeb314713691a3af09fe063cf1bd9aef9",
  "parents": [
    "11dff3a0e06d6471863f4e997f6c4e5d05de3466"
  ],
  "author": {
    "name": "Kai Nacke",
    "email": "kai.peter.nacke@ibm.com",
    "time": "Wed Nov 19 16:05:00 2025 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Nov 19 16:05:00 2025 -0500"
  },
  "message": "[Analysis] Move TargetLibraryInfo data to TableGen (#165009)\n\nThe collection of library function names in TargetLibraryInfo faces\nsimilar challenges as RuntimeLibCalls in the IR component. The number of\nfunction names is large, there are numerous customizations based on the\ntriple (including alternate names), and there is a lot of replicated\ndata in the signature table.\n\nThe ultimate goal would be to capture all lbrary function related\ninformation in a .td file. This PR brings the current .def file to\nTableGen, almost as a 1:1 replacement. However, there are some\nimprovements which are not possible in the current implementation:\n\n- the function names are now stored as a long string together with an\noffset table.\n- the table of signatures is now deduplicated, using an offset table for\naccess.\n\nThe size of the object file decreases about 34kB with these changes. The\nhash table of all function names is still constructed dynamically. A\nstatic table like for RuntimeLibCalls is the next logical step.\n\nThe main motivation for this change is that I have to add a large number\nof custom names for z/OS (like in RuntimeLibCalls.td), and the current\ninfrastructur does not support this very well.",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "036f7ff00ce862c5bb885a70d28bf4636a1b7c12",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/Analysis/CMakeLists.txt"
    },
    {
      "type": "delete",
      "old_id": "76b89dcb3f25d923333d1d798c6f5516da647006",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/Analysis/TargetLibraryInfo.def",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "3b6cc0d1944fdc2ae9eeefa4766ad7d3523ec378",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/Analysis/TargetLibraryInfo.h",
      "new_id": "0f98af69f12c6abcb5b42355545e9f2c8a6025b5",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/Analysis/TargetLibraryInfo.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "10b43ad2466fca51747f90ce6d0c9b8b90f639fb",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/Analysis/TargetLibraryInfo.td"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cd1a0bb45b5de09a607fcedca7f108679ffcdcd4",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/Analysis/TargetLibraryInfoImpl.td"
    },
    {
      "type": "modify",
      "old_id": "ac6b96a68ab92d149b2cb53699574382906f086b",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/CMakeLists.txt",
      "new_id": "81da4f6cb9a9094e716a558870ecd01a015bc75f",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "154ded8e94d7fe4a21767c18b50c4845cbbd215f",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/TableGen/StringToOffsetTable.h",
      "new_id": "5ee5fb538f3ebe2ce62d4baa37d95e2efd14f668",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/TableGen/StringToOffsetTable.h"
    },
    {
      "type": "modify",
      "old_id": "671e023415a6e0765a0ebc44319b8c7db52f5a59",
      "old_mode": 33188,
      "old_path": "llvm/lib/Analysis/BranchProbabilityInfo.cpp",
      "new_id": "4a99a40e0d2cc47116a5582ab211ce2c35d57d08",
      "new_mode": 33188,
      "new_path": "llvm/lib/Analysis/BranchProbabilityInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "bff9b62d98e06f29bbe6ac2c77ecc86577d3f2c9",
      "old_mode": 33188,
      "old_path": "llvm/lib/Analysis/CMakeLists.txt",
      "new_id": "9abdca099d9fe4fbdb6a75833979d4f4171bf9da",
      "new_mode": 33188,
      "new_path": "llvm/lib/Analysis/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "26d0c108fb03a33fecae1f69a2fdae95dac97b6d",
      "old_mode": 33188,
      "old_path": "llvm/lib/Analysis/TargetLibraryInfo.cpp",
      "new_id": "51b1f5874bcb6e4916fd22e7eeea8c6615620a25",
      "new_mode": 33188,
      "new_path": "llvm/lib/Analysis/TargetLibraryInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "c95aaaf30bf806dd957895a44ef6b048f581085f",
      "old_mode": 33188,
      "old_path": "llvm/lib/LTO/UpdateCompilerUsed.cpp",
      "new_id": "1889c2b762ff79307358a022c116da582e6f8585",
      "new_mode": 33188,
      "new_path": "llvm/lib/LTO/UpdateCompilerUsed.cpp"
    },
    {
      "type": "modify",
      "old_id": "41f82caa12f825c861bd1ec14f3ceed53278a6f7",
      "old_mode": 33188,
      "old_path": "llvm/lib/TableGen/StringToOffsetTable.cpp",
      "new_id": "06d82404862459ca766d29967e1f50392918fdcf",
      "new_mode": 33188,
      "new_path": "llvm/lib/TableGen/StringToOffsetTable.cpp"
    },
    {
      "type": "modify",
      "old_id": "a2fad021e048052f846552151a8f55bb1e92fe60",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp",
      "new_id": "66d570b3f831e2c969f6a0917d9100520150899d",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp"
    },
    {
      "type": "modify",
      "old_id": "4a1565977b91cdcd21b972b355747b7a04cb9f96",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp",
      "new_id": "4f4e64b1c7b7085733e8cee09007f5009827f44d",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ca6d16e236bda76825266ad03c9d083291c65b38",
      "new_mode": 33188,
      "new_path": "llvm/test/TableGen/TargetLibraryInfo.td"
    },
    {
      "type": "modify",
      "old_id": "0cf8c5c63bef22a1a5c8c661db2f464bc9c41c47",
      "old_mode": 33188,
      "old_path": "llvm/tools/llvm-tli-checker/llvm-tli-checker.cpp",
      "new_id": "0b606afb44cb978200de4486340f60a31e886207",
      "new_mode": 33188,
      "new_path": "llvm/tools/llvm-tli-checker/llvm-tli-checker.cpp"
    },
    {
      "type": "modify",
      "old_id": "787a32407ad95f9f7813ac3bfdbecaee72db78a8",
      "old_mode": 33188,
      "old_path": "llvm/unittests/Analysis/TargetLibraryInfoTest.cpp",
      "new_id": "3029f10b1bb297cc49b6a96e70d4f9449b1f0f85",
      "new_mode": 33188,
      "new_path": "llvm/unittests/Analysis/TargetLibraryInfoTest.cpp"
    },
    {
      "type": "modify",
      "old_id": "2030e9add7f30658257ceadcbefbad05f747e6c3",
      "old_mode": 33188,
      "old_path": "llvm/utils/TableGen/Basic/CMakeLists.txt",
      "new_id": "01ab8a0ef22502cc1a4c9befe808f62cd0191d97",
      "new_mode": 33188,
      "new_path": "llvm/utils/TableGen/Basic/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f7364e0298d8969ae69389a2a63aacb5084c2529",
      "new_mode": 33188,
      "new_path": "llvm/utils/TableGen/Basic/TargetLibraryInfoEmitter.cpp"
    }
  ]
}
