diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2025-01-18 12:32:07 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2025-02-04 18:04:58 +0000 |
commit | 51d0ad7de0ad4636ae39783469cf555a1392b4ea (patch) | |
tree | f3c43d1171f386a199644b92af44db3cd6623b04 /clang/lib | |
parent | 2ff42bdac3b9a131ce1c652d08edded4eac9d3f7 (diff) | |
download | llvm-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.cpp | 12 |
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_"}}; } |