diff options
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Builtins.cpp | 26 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/BPF.cpp | 14 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/Hexagon.cpp | 17 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/NVPTX.cpp | 14 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/RISCV.cpp | 16 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/SPIR.cpp | 14 | ||||
-rw-r--r-- | clang/lib/Basic/Targets/X86.cpp | 51 |
7 files changed, 69 insertions, 83 deletions
diff --git a/clang/lib/Basic/Builtins.cpp b/clang/lib/Basic/Builtins.cpp index e5b0ff5..e7829a4 100644 --- a/clang/lib/Basic/Builtins.cpp +++ b/clang/lib/Basic/Builtins.cpp @@ -29,23 +29,19 @@ const char *HeaderDesc::getName() const { llvm_unreachable("Unknown HeaderDesc::HeaderID enum"); } -static constexpr llvm::StringTable BuiltinStrings = - CLANG_BUILTIN_STR_TABLE_START - // We inject a non-builtin string into the table. - CLANG_BUILTIN_STR_TABLE("not a builtin function", "", "") -#define BUILTIN CLANG_BUILTIN_STR_TABLE +static constexpr unsigned NumBuiltins = Builtin::FirstTSBuiltin; + +#define GET_BUILTIN_STR_TABLE #include "clang/Basic/Builtins.inc" - ; -static_assert(BuiltinStrings.size() < 100'000); - -static constexpr auto BuiltinInfos = - Builtin::MakeInfos<Builtin::FirstTSBuiltin>( - {CLANG_BUILTIN_ENTRY("not a builtin function", "", "") -#define BUILTIN CLANG_BUILTIN_ENTRY -#define LANGBUILTIN CLANG_LANGBUILTIN_ENTRY -#define LIBBUILTIN CLANG_LIBBUILTIN_ENTRY +#undef GET_BUILTIN_STR_TABLE + +static constexpr Builtin::Info BuiltinInfos[] = { + Builtin::Info{}, // No-builtin info entry. +#define GET_BUILTIN_INFOS #include "clang/Basic/Builtins.inc" - }); +#undef GET_BUILTIN_INFOS +}; +static_assert(std::size(BuiltinInfos) == NumBuiltins); std::pair<const Builtin::InfosShard &, const Builtin::Info &> Builtin::Context::getShardAndInfo(unsigned ID) const { diff --git a/clang/lib/Basic/Targets/BPF.cpp b/clang/lib/Basic/Targets/BPF.cpp index b4504fa..a463de0 100644 --- a/clang/lib/Basic/Targets/BPF.cpp +++ b/clang/lib/Basic/Targets/BPF.cpp @@ -22,16 +22,16 @@ using namespace clang::targets; static constexpr int NumBuiltins = clang::BPF::LastTSBuiltin - Builtin::FirstTSBuiltin; -static constexpr llvm::StringTable BuiltinStrings = - CLANG_BUILTIN_STR_TABLE_START -#define BUILTIN CLANG_BUILTIN_STR_TABLE +#define GET_BUILTIN_STR_TABLE #include "clang/Basic/BuiltinsBPF.inc" - ; +#undef GET_BUILTIN_STR_TABLE -static constexpr auto BuiltinInfos = Builtin::MakeInfos<NumBuiltins>({ -#define BUILTIN CLANG_BUILTIN_ENTRY +static constexpr Builtin::Info BuiltinInfos[] = { +#define GET_BUILTIN_INFOS #include "clang/Basic/BuiltinsBPF.inc" -}); +#undef GET_BUILTIN_INFOS +}; +static_assert(std::size(BuiltinInfos) == NumBuiltins); void BPFTargetInfo::getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const { diff --git a/clang/lib/Basic/Targets/Hexagon.cpp b/clang/lib/Basic/Targets/Hexagon.cpp index acf44ef..c73ecee 100644 --- a/clang/lib/Basic/Targets/Hexagon.cpp +++ b/clang/lib/Basic/Targets/Hexagon.cpp @@ -207,19 +207,16 @@ ArrayRef<TargetInfo::GCCRegAlias> HexagonTargetInfo::getGCCRegAliases() const { static constexpr int NumBuiltins = clang::Hexagon::LastTSBuiltin - Builtin::FirstTSBuiltin; -static constexpr llvm::StringTable BuiltinStrings = - CLANG_BUILTIN_STR_TABLE_START -#define BUILTIN CLANG_BUILTIN_STR_TABLE -#define TARGET_BUILTIN CLANG_TARGET_BUILTIN_STR_TABLE +#define GET_BUILTIN_STR_TABLE #include "clang/Basic/BuiltinsHexagon.inc" - ; +#undef GET_BUILTIN_STR_TABLE -static constexpr auto BuiltinInfos = Builtin::MakeInfos<NumBuiltins>({ -#define BUILTIN CLANG_BUILTIN_ENTRY -#define LIBBUILTIN CLANG_LIBBUILTIN_ENTRY -#define TARGET_BUILTIN CLANG_TARGET_BUILTIN_ENTRY +static constexpr Builtin::Info BuiltinInfos[] = { +#define GET_BUILTIN_INFOS #include "clang/Basic/BuiltinsHexagon.inc" -}); +#undef GET_BUILTIN_INFOS +}; +static_assert(std::size(BuiltinInfos) == NumBuiltins); bool HexagonTargetInfo::hasFeature(StringRef Feature) const { std::string VS = "hvxv" + HVXVersion; diff --git a/clang/lib/Basic/Targets/NVPTX.cpp b/clang/lib/Basic/Targets/NVPTX.cpp index f20c021..7d13c1f 100644 --- a/clang/lib/Basic/Targets/NVPTX.cpp +++ b/clang/lib/Basic/Targets/NVPTX.cpp @@ -23,16 +23,16 @@ using namespace clang::targets; static constexpr int NumBuiltins = clang::NVPTX::LastTSBuiltin - Builtin::FirstTSBuiltin; -static constexpr llvm::StringTable BuiltinStrings = - CLANG_BUILTIN_STR_TABLE_START -#define TARGET_BUILTIN CLANG_TARGET_BUILTIN_STR_TABLE +#define GET_BUILTIN_STR_TABLE #include "clang/Basic/BuiltinsNVPTX.inc" - ; +#undef GET_BUILTIN_STR_TABLE -static constexpr auto BuiltinInfos = Builtin::MakeInfos<NumBuiltins>({ -#define TARGET_BUILTIN CLANG_TARGET_BUILTIN_ENTRY +static constexpr Builtin::Info BuiltinInfos[] = { +#define GET_BUILTIN_INFOS #include "clang/Basic/BuiltinsNVPTX.inc" -}); +#undef GET_BUILTIN_INFOS +}; +static_assert(std::size(BuiltinInfos) == NumBuiltins); const char *const NVPTXTargetInfo::GCCRegNames[] = {"r0"}; diff --git a/clang/lib/Basic/Targets/RISCV.cpp b/clang/lib/Basic/Targets/RISCV.cpp index c4317a1..b4aa320 100644 --- a/clang/lib/Basic/Targets/RISCV.cpp +++ b/clang/lib/Basic/Targets/RISCV.cpp @@ -277,18 +277,16 @@ static constexpr std::array<Builtin::Info, NumRVVSiFiveBuiltins> BuiltinInfos = }; } // namespace RVVSiFive -static constexpr llvm::StringTable BuiltinStrings = - CLANG_BUILTIN_STR_TABLE_START -#define BUILTIN CLANG_BUILTIN_STR_TABLE -#define TARGET_BUILTIN CLANG_TARGET_BUILTIN_STR_TABLE +#define GET_BUILTIN_STR_TABLE #include "clang/Basic/BuiltinsRISCV.inc" - ; +#undef GET_BUILTIN_STR_TABLE -static constexpr auto BuiltinInfos = Builtin::MakeInfos<NumRISCVBuiltins>({ -#define BUILTIN CLANG_BUILTIN_ENTRY -#define TARGET_BUILTIN CLANG_TARGET_BUILTIN_ENTRY +static constexpr Builtin::Info BuiltinInfos[] = { +#define GET_BUILTIN_INFOS #include "clang/Basic/BuiltinsRISCV.inc" -}); +#undef GET_BUILTIN_INFOS +}; +static_assert(std::size(BuiltinInfos) == NumRISCVBuiltins); llvm::SmallVector<Builtin::InfosShard> RISCVTargetInfo::getTargetBuiltins() const { diff --git a/clang/lib/Basic/Targets/SPIR.cpp b/clang/lib/Basic/Targets/SPIR.cpp index a242fd8..5c076f6 100644 --- a/clang/lib/Basic/Targets/SPIR.cpp +++ b/clang/lib/Basic/Targets/SPIR.cpp @@ -23,16 +23,16 @@ using namespace clang::targets; static constexpr int NumBuiltins = clang::SPIRV::LastTSBuiltin - Builtin::FirstTSBuiltin; -static constexpr llvm::StringTable BuiltinStrings = - CLANG_BUILTIN_STR_TABLE_START -#define BUILTIN CLANG_BUILTIN_STR_TABLE +#define GET_BUILTIN_STR_TABLE #include "clang/Basic/BuiltinsSPIRV.inc" - ; +#undef GET_BUILTIN_STR_TABLE -static constexpr auto BuiltinInfos = Builtin::MakeInfos<NumBuiltins>({ -#define BUILTIN CLANG_BUILTIN_ENTRY +static constexpr Builtin::Info BuiltinInfos[] = { +#define GET_BUILTIN_INFOS #include "clang/Basic/BuiltinsSPIRV.inc" -}); +#undef GET_BUILTIN_INFOS +}; +static_assert(std::size(BuiltinInfos) == NumBuiltins); llvm::SmallVector<Builtin::InfosShard> SPIRVTargetInfo::getTargetBuiltins() const { diff --git a/clang/lib/Basic/Targets/X86.cpp b/clang/lib/Basic/Targets/X86.cpp index 1bb5f78..79b3bda 100644 --- a/clang/lib/Basic/Targets/X86.cpp +++ b/clang/lib/Basic/Targets/X86.cpp @@ -31,36 +31,31 @@ static constexpr int NumX86_64Builtins = static constexpr int NumBuiltins = X86::LastTSBuiltin - Builtin::FirstTSBuiltin; static_assert(NumBuiltins == (NumX86Builtins + NumX86_64Builtins)); -static constexpr llvm::StringTable BuiltinX86Strings = - CLANG_BUILTIN_STR_TABLE_START -#define BUILTIN CLANG_BUILTIN_STR_TABLE -#define TARGET_BUILTIN CLANG_TARGET_BUILTIN_STR_TABLE -#define TARGET_HEADER_BUILTIN CLANG_TARGET_HEADER_BUILTIN_STR_TABLE +namespace X86 { +#define GET_BUILTIN_STR_TABLE #include "clang/Basic/BuiltinsX86.inc" - ; +#undef GET_BUILTIN_STR_TABLE -static constexpr llvm::StringTable BuiltinX86_64Strings = - CLANG_BUILTIN_STR_TABLE_START -#define BUILTIN CLANG_BUILTIN_STR_TABLE -#define TARGET_BUILTIN CLANG_TARGET_BUILTIN_STR_TABLE -#define TARGET_HEADER_BUILTIN CLANG_TARGET_HEADER_BUILTIN_STR_TABLE -#include "clang/Basic/BuiltinsX86_64.inc" - ; - -static constexpr auto BuiltinX86Infos = Builtin::MakeInfos<NumX86Builtins>({ -#define BUILTIN CLANG_BUILTIN_ENTRY -#define TARGET_BUILTIN CLANG_TARGET_BUILTIN_ENTRY -#define TARGET_HEADER_BUILTIN CLANG_TARGET_HEADER_BUILTIN_ENTRY +static constexpr Builtin::Info BuiltinInfos[] = { +#define GET_BUILTIN_INFOS #include "clang/Basic/BuiltinsX86.inc" -}); +#undef GET_BUILTIN_INFOS +}; +static_assert(std::size(BuiltinInfos) == NumX86Builtins); +} // namespace X86 -static constexpr auto BuiltinX86_64Infos = - Builtin::MakeInfos<NumX86_64Builtins>({ -#define BUILTIN CLANG_BUILTIN_ENTRY -#define TARGET_BUILTIN CLANG_TARGET_BUILTIN_ENTRY -#define TARGET_HEADER_BUILTIN CLANG_TARGET_HEADER_BUILTIN_ENTRY +namespace X86_64 { +#define GET_BUILTIN_STR_TABLE #include "clang/Basic/BuiltinsX86_64.inc" - }); +#undef GET_BUILTIN_STR_TABLE + +static constexpr Builtin::Info BuiltinInfos[] = { +#define GET_BUILTIN_INFOS +#include "clang/Basic/BuiltinsX86_64.inc" +#undef GET_BUILTIN_INFOS +}; +static_assert(std::size(BuiltinInfos) == NumX86_64Builtins); +} // namespace X86_64 static const char *const GCCRegNames[] = { "ax", "dx", "cx", "bx", "si", "di", "bp", "sp", @@ -1879,13 +1874,13 @@ ArrayRef<TargetInfo::AddlRegName> X86TargetInfo::getGCCAddlRegNames() const { llvm::SmallVector<Builtin::InfosShard> X86_32TargetInfo::getTargetBuiltins() const { - return {{&BuiltinX86Strings, BuiltinX86Infos}}; + return {{&X86::BuiltinStrings, X86::BuiltinInfos}}; } llvm::SmallVector<Builtin::InfosShard> X86_64TargetInfo::getTargetBuiltins() const { return { - {&BuiltinX86Strings, BuiltinX86Infos}, - {&BuiltinX86_64Strings, BuiltinX86_64Infos}, + {&X86::BuiltinStrings, X86::BuiltinInfos}, + {&X86_64::BuiltinStrings, X86_64::BuiltinInfos}, }; } |