aboutsummaryrefslogtreecommitdiff
path: root/clang/lib
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2025-01-18 12:32:07 +0000
committerChandler Carruth <chandlerc@gmail.com>2025-02-04 18:04:58 +0000
commit51d0ad7de0ad4636ae39783469cf555a1392b4ea (patch)
treef3c43d1171f386a199644b92af44db3cd6623b04 /clang/lib
parent2ff42bdac3b9a131ce1c652d08edded4eac9d3f7 (diff)
downloadllvm-51d0ad7de0ad4636ae39783469cf555a1392b4ea.zip
llvm-51d0ad7de0ad4636ae39783469cf555a1392b4ea.tar.gz
llvm-51d0ad7de0ad4636ae39783469cf555a1392b4ea.tar.bz2
[StrTable] Add factored prefix for Hexagon
This target's builtins have an especially long prefix and so we get over 2x reduction in string table size required with this change.
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Basic/Targets/Hexagon.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets/Hexagon.cpp b/clang/lib/Basic/Targets/Hexagon.cpp
index c73ecee..c19c2e7 100644
--- a/clang/lib/Basic/Targets/Hexagon.cpp
+++ b/clang/lib/Basic/Targets/Hexagon.cpp
@@ -216,7 +216,14 @@ static constexpr Builtin::Info BuiltinInfos[] = {
#include "clang/Basic/BuiltinsHexagon.inc"
#undef GET_BUILTIN_INFOS
};
-static_assert(std::size(BuiltinInfos) == NumBuiltins);
+
+static constexpr Builtin::Info PrefixedBuiltinInfos[] = {
+#define GET_BUILTIN_PREFIXED_INFOS
+#include "clang/Basic/BuiltinsHexagon.inc"
+#undef GET_BUILTIN_PREFIXED_INFOS
+};
+static_assert((std::size(BuiltinInfos) + std::size(PrefixedBuiltinInfos)) ==
+ NumBuiltins);
bool HexagonTargetInfo::hasFeature(StringRef Feature) const {
std::string VS = "hvxv" + HVXVersion;
@@ -277,5 +284,6 @@ void HexagonTargetInfo::fillValidCPUList(
llvm::SmallVector<Builtin::InfosShard>
HexagonTargetInfo::getTargetBuiltins() const {
- return {{&BuiltinStrings, BuiltinInfos}};
+ return {{&BuiltinStrings, BuiltinInfos},
+ {&BuiltinStrings, PrefixedBuiltinInfos, "__builtin_HEXAGON_"}};
}