aboutsummaryrefslogtreecommitdiff
path: root/clang/lib
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2025-01-28 00:07:38 -0800
committerGitHub <noreply@github.com>2025-01-28 00:07:38 -0800
commit7e22180c20fa3b4e0add41ad620d2eaac2b47fcc (patch)
tree9a2766070b4c299b6ab071b16f148e835c34d8ce /clang/lib
parent0865ecc5150b9a55ba1f9e30b6d463a66ac362a6 (diff)
downloadllvm-7e22180c20fa3b4e0add41ad620d2eaac2b47fcc.zip
llvm-7e22180c20fa3b4e0add41ad620d2eaac2b47fcc.tar.gz
llvm-7e22180c20fa3b4e0add41ad620d2eaac2b47fcc.tar.bz2
[StrTable] Mechanically convert Hexagon builtins to use TableGen (#123460)
This switches them to use the common builtin TableGen emission. The fancy feature string preprocessor tricks are replaced with a fairly direct translation into TableGen. All of the actual definitions were created using a quite hack-y Python script that was never intended to be productionized. It preserves the order, spacing, and even comments from the original files. For posterity, the script used is here: https://gist.github.com/chandlerc/f53c7d735e33eecf388529bd9a6010df The original `.def` file appears to be generated by some out-of-tree `iset.py` script, which because it is out of tree I couldn't update. It should be very straightforward though to update it to generate a similar structure as was used to produce the `.td` file. In addition to helping move towards TableGen for all of the builtins, these builtins in particular can be *much* more efficiently handled using TableGen when we start emitting string tables for them because it allows de-duplicating all of the feature strings. The commit sha parent at the time the PR was made is 7253c6fde498c4c9470b681df47d46e6930d6a02 and at that commit, the resulting TableGen file produces a `.inc` file that only differs in whitespace and the order of the builtins defined.
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Basic/Targets/Hexagon.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets/Hexagon.cpp b/clang/lib/Basic/Targets/Hexagon.cpp
index b5e06b6..2e173e0 100644
--- a/clang/lib/Basic/Targets/Hexagon.cpp
+++ b/clang/lib/Basic/Targets/Hexagon.cpp
@@ -211,7 +211,7 @@ static constexpr Builtin::Info BuiltinInfo[] = {
{#ID, TYPE, ATTRS, nullptr, HEADER, ALL_LANGUAGES},
#define TARGET_BUILTIN(ID, TYPE, ATTRS, FEATURE) \
{#ID, TYPE, ATTRS, FEATURE, HeaderDesc::NO_HEADER, ALL_LANGUAGES},
-#include "clang/Basic/BuiltinsHexagon.def"
+#include "clang/Basic/BuiltinsHexagon.inc"
};
bool HexagonTargetInfo::hasFeature(StringRef Feature) const {