[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
https://github.com/chandlerc edited https://github.com/llvm/llvm-project/pull/119638 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
https://github.com/chandlerc closed https://github.com/llvm/llvm-project/pull/119638 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
chandlerc wrote: Build bot with the issue is now online and failing as expected, merging this revert to get in green (we hope). https://github.com/llvm/llvm-project/pull/119638 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
chandlerc wrote: Sorry, let's keep discussion on the original PR -- I'll go post there. https://github.com/llvm/llvm-project/pull/119638 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
chandlerc wrote: > I'm going to bring out Windows buildbot back online that was failing so that > when you do submit the revert, the bot should go back to green. I am looking > into this and will get back to you on the original bug when I find something. So, the builder came back up, and is now passing without this landing... Here is the first build after it came back up: https://lab.llvm.org/buildbot/#/builders/46/builds/9173 And I went through the output and found a specific test that was failing, and it seems to pass? ``` PASS: Clang :: AST/builtins-arm-strex-rettype.c (433 of 81898) ``` So maybe this was a transient issue that has been fixed, or some stale state? https://github.com/llvm/llvm-project/pull/119638 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
dyung wrote: I'm going to bring out Windows buildbot back online that was failing so that when you do submit the revert, the bot should go back to green. I am looking into this and will get back to you on the original bug when I find something. https://github.com/llvm/llvm-project/pull/119638 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
https://github.com/dyung approved this pull request. LGTM https://github.com/llvm/llvm-project/pull/119638 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
https://github.com/chandlerc updated https://github.com/llvm/llvm-project/pull/119638 >From 333befd054fb5da81f1349c8eba7255aa4e3ec12 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Wed, 11 Dec 2024 15:59:35 -0800 Subject: [PATCH 1/2] Revert "Switch builtin strings to use string tables (#118734)" This reverts commit be2df95e9281985b61270bb6420ea0eeeffbbe59. --- clang/include/clang/Basic/Builtins.h | 205 -- clang/include/clang/Basic/BuiltinsPPC.def | 1 - clang/include/clang/Basic/TargetInfo.h| 11 +- clang/lib/Basic/Builtins.cpp | 120 - clang/lib/Basic/Targets/AArch64.cpp | 60 +++ clang/lib/Basic/Targets/AArch64.h | 3 +- clang/lib/Basic/Targets/AMDGPU.cpp| 23 +-- clang/lib/Basic/Targets/AMDGPU.h | 3 +- clang/lib/Basic/Targets/ARC.h | 5 +- clang/lib/Basic/Targets/ARM.cpp | 45 +++-- clang/lib/Basic/Targets/ARM.h | 3 +- clang/lib/Basic/Targets/AVR.h | 5 +- clang/lib/Basic/Targets/BPF.cpp | 19 +- clang/lib/Basic/Targets/BPF.h | 3 +- clang/lib/Basic/Targets/CSKY.cpp | 4 + clang/lib/Basic/Targets/CSKY.h| 5 +- clang/lib/Basic/Targets/DirectX.h | 5 +- clang/lib/Basic/Targets/Hexagon.cpp | 26 ++- clang/lib/Basic/Targets/Hexagon.h | 3 +- clang/lib/Basic/Targets/Lanai.h | 5 +- clang/lib/Basic/Targets/LoongArch.cpp | 23 +-- clang/lib/Basic/Targets/LoongArch.h | 3 +- clang/lib/Basic/Targets/M68k.cpp | 5 +- clang/lib/Basic/Targets/M68k.h| 3 +- clang/lib/Basic/Targets/MSP430.h | 5 +- clang/lib/Basic/Targets/Mips.cpp | 22 +-- clang/lib/Basic/Targets/Mips.h| 3 +- clang/lib/Basic/Targets/NVPTX.cpp | 26 ++- clang/lib/Basic/Targets/NVPTX.h | 3 +- clang/lib/Basic/Targets/PNaCl.h | 5 +- clang/lib/Basic/Targets/PPC.cpp | 26 ++- clang/lib/Basic/Targets/PPC.h | 3 +- clang/lib/Basic/Targets/RISCV.cpp | 32 ++-- clang/lib/Basic/Targets/RISCV.h | 3 +- clang/lib/Basic/Targets/SPIR.cpp | 5 +- clang/lib/Basic/Targets/SPIR.h| 8 +- clang/lib/Basic/Targets/Sparc.h | 5 +- clang/lib/Basic/Targets/SystemZ.cpp | 23 +-- clang/lib/Basic/Targets/SystemZ.h | 3 +- clang/lib/Basic/Targets/TCE.h | 5 +- clang/lib/Basic/Targets/VE.cpp| 19 +- clang/lib/Basic/Targets/VE.h | 3 +- clang/lib/Basic/Targets/WebAssembly.cpp | 26 ++- clang/lib/Basic/Targets/WebAssembly.h | 3 +- clang/lib/Basic/Targets/X86.cpp | 68 +++ clang/lib/Basic/Targets/X86.h | 6 +- clang/lib/Basic/Targets/XCore.cpp | 22 +-- clang/lib/Basic/Targets/XCore.h | 3 +- 48 files changed, 309 insertions(+), 606 deletions(-) diff --git a/clang/include/clang/Basic/Builtins.h b/clang/include/clang/Basic/Builtins.h index a9bb6efe850cc6..89f65682ae5b41 100644 --- a/clang/include/clang/Basic/Builtins.h +++ b/clang/include/clang/Basic/Builtins.h @@ -55,7 +55,6 @@ struct HeaderDesc { #undef HEADER } ID; - constexpr HeaderDesc() : ID() {} constexpr HeaderDesc(HeaderID ID) : ID(ID) {} const char *getName() const; @@ -69,140 +68,14 @@ enum ID { FirstTSBuiltin }; -// The info used to represent each builtin. struct Info { - // Rather than store pointers to the string literals describing these four - // aspects of builtins, we store offsets into a common string table. - struct StrOffsets { -int Name; -int Type; -int Attributes; -int Features; - } Offsets; - + llvm::StringLiteral Name; + const char *Type, *Attributes; + const char *Features; HeaderDesc Header; LanguageID Langs; }; -// The storage for `N` builtins. This contains a single pointer to the string -// table used for these builtins and an array of metadata for each builtin. -template struct Storage { - const char *StringTable; - - std::array Infos; - - // A constexpr function to construct the storage for a a given string table in - // the first argument and an array in the second argument. This is *only* - // expected to be used at compile time, we should mark it `consteval` when - // available. - // - // The `Infos` array is particularly special. This function expects an array - // of `Info` structs, where the string offsets of each entry refer to the - // *sizes* of those strings rather than their offsets, and for the target - // string to be in the provided string table at an offset the sum of all - // previous string sizes. This function walks the `Infos` array computing the - // running sum and replacing the sizes with the actual offsets in the string - // table that should be used. This arrangement is designed to make it easy to - // expand `.def` and `.inc` files with X-macros to c
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
https://github.com/chandlerc created https://github.com/llvm/llvm-project/pull/119638 Reverts llvm/llvm-project#118734 There is currently a specific (unreleased?) version of MSVC and builder that are crashing / failing on this code. We don't know why as all the other build bots and at least some folks' local Windows builds work fine. This is a candidate revert to help the relevant folks catch their builders up and have time to debug the issue. However, it should only be submitted if we have a fairly concrete ETA on figuring out what is going wrong and suggesting some path forward given that no one else has thus far reproduced the issue. >From 333befd054fb5da81f1349c8eba7255aa4e3ec12 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Wed, 11 Dec 2024 15:59:35 -0800 Subject: [PATCH] Revert "Switch builtin strings to use string tables (#118734)" This reverts commit be2df95e9281985b61270bb6420ea0eeeffbbe59. --- clang/include/clang/Basic/Builtins.h | 205 -- clang/include/clang/Basic/BuiltinsPPC.def | 1 - clang/include/clang/Basic/TargetInfo.h| 11 +- clang/lib/Basic/Builtins.cpp | 120 - clang/lib/Basic/Targets/AArch64.cpp | 60 +++ clang/lib/Basic/Targets/AArch64.h | 3 +- clang/lib/Basic/Targets/AMDGPU.cpp| 23 +-- clang/lib/Basic/Targets/AMDGPU.h | 3 +- clang/lib/Basic/Targets/ARC.h | 5 +- clang/lib/Basic/Targets/ARM.cpp | 45 +++-- clang/lib/Basic/Targets/ARM.h | 3 +- clang/lib/Basic/Targets/AVR.h | 5 +- clang/lib/Basic/Targets/BPF.cpp | 19 +- clang/lib/Basic/Targets/BPF.h | 3 +- clang/lib/Basic/Targets/CSKY.cpp | 4 + clang/lib/Basic/Targets/CSKY.h| 5 +- clang/lib/Basic/Targets/DirectX.h | 5 +- clang/lib/Basic/Targets/Hexagon.cpp | 26 ++- clang/lib/Basic/Targets/Hexagon.h | 3 +- clang/lib/Basic/Targets/Lanai.h | 5 +- clang/lib/Basic/Targets/LoongArch.cpp | 23 +-- clang/lib/Basic/Targets/LoongArch.h | 3 +- clang/lib/Basic/Targets/M68k.cpp | 5 +- clang/lib/Basic/Targets/M68k.h| 3 +- clang/lib/Basic/Targets/MSP430.h | 5 +- clang/lib/Basic/Targets/Mips.cpp | 22 +-- clang/lib/Basic/Targets/Mips.h| 3 +- clang/lib/Basic/Targets/NVPTX.cpp | 26 ++- clang/lib/Basic/Targets/NVPTX.h | 3 +- clang/lib/Basic/Targets/PNaCl.h | 5 +- clang/lib/Basic/Targets/PPC.cpp | 26 ++- clang/lib/Basic/Targets/PPC.h | 3 +- clang/lib/Basic/Targets/RISCV.cpp | 32 ++-- clang/lib/Basic/Targets/RISCV.h | 3 +- clang/lib/Basic/Targets/SPIR.cpp | 5 +- clang/lib/Basic/Targets/SPIR.h| 8 +- clang/lib/Basic/Targets/Sparc.h | 5 +- clang/lib/Basic/Targets/SystemZ.cpp | 23 +-- clang/lib/Basic/Targets/SystemZ.h | 3 +- clang/lib/Basic/Targets/TCE.h | 5 +- clang/lib/Basic/Targets/VE.cpp| 19 +- clang/lib/Basic/Targets/VE.h | 3 +- clang/lib/Basic/Targets/WebAssembly.cpp | 26 ++- clang/lib/Basic/Targets/WebAssembly.h | 3 +- clang/lib/Basic/Targets/X86.cpp | 68 +++ clang/lib/Basic/Targets/X86.h | 6 +- clang/lib/Basic/Targets/XCore.cpp | 22 +-- clang/lib/Basic/Targets/XCore.h | 3 +- 48 files changed, 309 insertions(+), 606 deletions(-) diff --git a/clang/include/clang/Basic/Builtins.h b/clang/include/clang/Basic/Builtins.h index a9bb6efe850cc6..89f65682ae5b41 100644 --- a/clang/include/clang/Basic/Builtins.h +++ b/clang/include/clang/Basic/Builtins.h @@ -55,7 +55,6 @@ struct HeaderDesc { #undef HEADER } ID; - constexpr HeaderDesc() : ID() {} constexpr HeaderDesc(HeaderID ID) : ID(ID) {} const char *getName() const; @@ -69,140 +68,14 @@ enum ID { FirstTSBuiltin }; -// The info used to represent each builtin. struct Info { - // Rather than store pointers to the string literals describing these four - // aspects of builtins, we store offsets into a common string table. - struct StrOffsets { -int Name; -int Type; -int Attributes; -int Features; - } Offsets; - + llvm::StringLiteral Name; + const char *Type, *Attributes; + const char *Features; HeaderDesc Header; LanguageID Langs; }; -// The storage for `N` builtins. This contains a single pointer to the string -// table used for these builtins and an array of metadata for each builtin. -template struct Storage { - const char *StringTable; - - std::array Infos; - - // A constexpr function to construct the storage for a a given string table in - // the first argument and an array in the second argument. This is *only* - // expected to be used at compile time, we should mark it `consteval` when - // available. - // - // The `Infos` array is particularly spec
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
github-actions[bot] wrote: :warning: C/C++ code formatter, clang-format found issues in your code. :warning: You can test this locally with the following command: ``bash git-clang-format --diff dd647e3e608ed0b2bac7c588d5859b80ef4a5976 333befd054fb5da81f1349c8eba7255aa4e3ec12 --extensions h,cpp -- clang/include/clang/Basic/Builtins.h clang/include/clang/Basic/TargetInfo.h clang/lib/Basic/Builtins.cpp clang/lib/Basic/Targets/AArch64.cpp clang/lib/Basic/Targets/AArch64.h clang/lib/Basic/Targets/AMDGPU.cpp clang/lib/Basic/Targets/AMDGPU.h clang/lib/Basic/Targets/ARC.h clang/lib/Basic/Targets/ARM.cpp clang/lib/Basic/Targets/ARM.h clang/lib/Basic/Targets/AVR.h clang/lib/Basic/Targets/BPF.cpp clang/lib/Basic/Targets/BPF.h clang/lib/Basic/Targets/CSKY.cpp clang/lib/Basic/Targets/CSKY.h clang/lib/Basic/Targets/DirectX.h clang/lib/Basic/Targets/Hexagon.cpp clang/lib/Basic/Targets/Hexagon.h clang/lib/Basic/Targets/Lanai.h clang/lib/Basic/Targets/LoongArch.cpp clang/lib/Basic/Targets/LoongArch.h clang/lib/Basic/Targets/M68k.cpp clang/lib/Basic/Targets/M68k.h clang/lib/Basic/Targets/MSP430.h clang/lib/Basic/Targets/Mips.cpp clang/lib/Basic/Targets/Mips.h clang/lib/Basic/Targets/NVPTX.cpp clang/lib/Basic/Targets/NVPTX.h clang/lib/Basic/Targets/PNaCl.h clang/lib/Basic/Targets/PPC.cpp clang/lib/Basic/Targets/PPC.h clang/lib/Basic/Targets/RISCV.cpp clang/lib/Basic/Targets/RISCV.h clang/lib/Basic/Targets/SPIR.cpp clang/lib/Basic/Targets/SPIR.h clang/lib/Basic/Targets/Sparc.h clang/lib/Basic/Targets/SystemZ.cpp clang/lib/Basic/Targets/SystemZ.h clang/lib/Basic/Targets/TCE.h clang/lib/Basic/Targets/VE.cpp clang/lib/Basic/Targets/VE.h clang/lib/Basic/Targets/WebAssembly.cpp clang/lib/Basic/Targets/WebAssembly.h clang/lib/Basic/Targets/X86.cpp clang/lib/Basic/Targets/X86.h clang/lib/Basic/Targets/XCore.cpp clang/lib/Basic/Targets/XCore.h `` View the diff from clang-format here. ``diff diff --git a/clang/include/clang/Basic/Builtins.h b/clang/include/clang/Basic/Builtins.h index 89f65682ae..e27d8ccce7 100644 --- a/clang/include/clang/Basic/Builtins.h +++ b/clang/include/clang/Basic/Builtins.h @@ -103,9 +103,7 @@ public: llvm::StringRef getName(unsigned ID) const { return getRecord(ID).Name; } /// Get the type descriptor string for the specified builtin. - const char *getTypeString(unsigned ID) const { -return getRecord(ID).Type; - } + const char *getTypeString(unsigned ID) const { return getRecord(ID).Type; } /// Return true if this function is a target-specific builtin. bool isTSBuiltin(unsigned ID) const { diff --git a/clang/include/clang/Basic/TargetInfo.h b/clang/include/clang/Basic/TargetInfo.h index 4420228793..82bd537b24 100644 --- a/clang/include/clang/Basic/TargetInfo.h +++ b/clang/include/clang/Basic/TargetInfo.h @@ -1009,7 +1009,6 @@ public: virtual void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const = 0; - /// Return information about target-specific builtins for /// the current primary target, and info about which builtins are non-portable /// across the current set of primary and secondary targets. diff --git a/clang/lib/Basic/Builtins.cpp b/clang/lib/Basic/Builtins.cpp index 25a6015736..8dd1888db2 100644 --- a/clang/lib/Basic/Builtins.cpp +++ b/clang/lib/Basic/Builtins.cpp @@ -134,7 +134,7 @@ static bool builtinIsSupported(const Builtin::Info &BuiltinInfo, void Builtin::Context::initializeBuiltins(IdentifierTable &Table, const LangOptions& LangOpts) { // Step #1: mark all target-independent builtins with their ID's. - for (unsigned i = Builtin::NotBuiltin+1; i != Builtin::FirstTSBuiltin; ++i) + for (unsigned i = Builtin::NotBuiltin + 1; i != Builtin::FirstTSBuiltin; ++i) if (builtinIsSupported(BuiltinInfo[i], LangOpts)) { Table.get(BuiltinInfo[i].Name).setBuiltinID(i); } `` https://github.com/llvm/llvm-project/pull/119638 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
llvmbot wrote: @llvm/pr-subscribers-backend-webassembly Author: Chandler Carruth (chandlerc) Changes Reverts llvm/llvm-project#118734 There is currently a specific (unreleased?) version of MSVC and builder that are crashing / failing on this code. We don't know why as all the other build bots and at least some folks' local Windows builds work fine. This is a candidate revert to help the relevant folks catch their builders up and have time to debug the issue. However, it should only be submitted if we have a fairly concrete ETA on figuring out what is going wrong and suggesting some path forward given that no one else has thus far reproduced the issue. --- Patch is 77.23 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/119638.diff 48 Files Affected: - (modified) clang/include/clang/Basic/Builtins.h (+36-169) - (modified) clang/include/clang/Basic/BuiltinsPPC.def (-1) - (modified) clang/include/clang/Basic/TargetInfo.h (+5-6) - (modified) clang/lib/Basic/Builtins.cpp (+39-81) - (modified) clang/lib/Basic/Targets/AArch64.cpp (+28-32) - (modified) clang/lib/Basic/Targets/AArch64.h (+1-2) - (modified) clang/lib/Basic/Targets/AMDGPU.cpp (+9-14) - (modified) clang/lib/Basic/Targets/AMDGPU.h (+1-2) - (modified) clang/lib/Basic/Targets/ARC.h (+1-4) - (modified) clang/lib/Basic/Targets/ARM.cpp (+21-24) - (modified) clang/lib/Basic/Targets/ARM.h (+1-2) - (modified) clang/lib/Basic/Targets/AVR.h (+1-4) - (modified) clang/lib/Basic/Targets/BPF.cpp (+7-12) - (modified) clang/lib/Basic/Targets/BPF.h (+1-2) - (modified) clang/lib/Basic/Targets/CSKY.cpp (+4) - (modified) clang/lib/Basic/Targets/CSKY.h (+1-4) - (modified) clang/lib/Basic/Targets/DirectX.h (+1-4) - (modified) clang/lib/Basic/Targets/Hexagon.cpp (+11-15) - (modified) clang/lib/Basic/Targets/Hexagon.h (+1-2) - (modified) clang/lib/Basic/Targets/Lanai.h (+1-4) - (modified) clang/lib/Basic/Targets/LoongArch.cpp (+9-14) - (modified) clang/lib/Basic/Targets/LoongArch.h (+1-2) - (modified) clang/lib/Basic/Targets/M68k.cpp (+2-3) - (modified) clang/lib/Basic/Targets/M68k.h (+1-2) - (modified) clang/lib/Basic/Targets/MSP430.h (+2-3) - (modified) clang/lib/Basic/Targets/Mips.cpp (+9-13) - (modified) clang/lib/Basic/Targets/Mips.h (+1-2) - (modified) clang/lib/Basic/Targets/NVPTX.cpp (+11-15) - (modified) clang/lib/Basic/Targets/NVPTX.h (+1-2) - (modified) clang/lib/Basic/Targets/PNaCl.h (+1-4) - (modified) clang/lib/Basic/Targets/PPC.cpp (+11-15) - (modified) clang/lib/Basic/Targets/PPC.h (+1-2) - (modified) clang/lib/Basic/Targets/RISCV.cpp (+13-19) - (modified) clang/lib/Basic/Targets/RISCV.h (+1-2) - (modified) clang/lib/Basic/Targets/SPIR.cpp (+2-3) - (modified) clang/lib/Basic/Targets/SPIR.h (+2-6) - (modified) clang/lib/Basic/Targets/Sparc.h (+2-3) - (modified) clang/lib/Basic/Targets/SystemZ.cpp (+9-14) - (modified) clang/lib/Basic/Targets/SystemZ.h (+1-2) - (modified) clang/lib/Basic/Targets/TCE.h (+1-4) - (modified) clang/lib/Basic/Targets/VE.cpp (+7-12) - (modified) clang/lib/Basic/Targets/VE.h (+1-2) - (modified) clang/lib/Basic/Targets/WebAssembly.cpp (+11-15) - (modified) clang/lib/Basic/Targets/WebAssembly.h (+1-2) - (modified) clang/lib/Basic/Targets/X86.cpp (+26-42) - (modified) clang/lib/Basic/Targets/X86.h (+2-4) - (modified) clang/lib/Basic/Targets/XCore.cpp (+9-13) - (modified) clang/lib/Basic/Targets/XCore.h (+1-2) ``diff diff --git a/clang/include/clang/Basic/Builtins.h b/clang/include/clang/Basic/Builtins.h index a9bb6efe850cc6..89f65682ae5b41 100644 --- a/clang/include/clang/Basic/Builtins.h +++ b/clang/include/clang/Basic/Builtins.h @@ -55,7 +55,6 @@ struct HeaderDesc { #undef HEADER } ID; - constexpr HeaderDesc() : ID() {} constexpr HeaderDesc(HeaderID ID) : ID(ID) {} const char *getName() const; @@ -69,140 +68,14 @@ enum ID { FirstTSBuiltin }; -// The info used to represent each builtin. struct Info { - // Rather than store pointers to the string literals describing these four - // aspects of builtins, we store offsets into a common string table. - struct StrOffsets { -int Name; -int Type; -int Attributes; -int Features; - } Offsets; - + llvm::StringLiteral Name; + const char *Type, *Attributes; + const char *Features; HeaderDesc Header; LanguageID Langs; }; -// The storage for `N` builtins. This contains a single pointer to the string -// table used for these builtins and an array of metadata for each builtin. -template struct Storage { - const char *StringTable; - - std::array Infos; - - // A constexpr function to construct the storage for a a given string table in - // the first argument and an array in the second argument. This is *only* - // expected to be used at compile time, we should mark it `consteval` when - // available. - // - // The `Infos` array is particularly special. This function expects an array - // of `Info` structs, where the string o
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
llvmbot wrote: @llvm/pr-subscribers-backend-m68k Author: Chandler Carruth (chandlerc) Changes Reverts llvm/llvm-project#118734 There is currently a specific (unreleased?) version of MSVC and builder that are crashing / failing on this code. We don't know why as all the other build bots and at least some folks' local Windows builds work fine. This is a candidate revert to help the relevant folks catch their builders up and have time to debug the issue. However, it should only be submitted if we have a fairly concrete ETA on figuring out what is going wrong and suggesting some path forward given that no one else has thus far reproduced the issue. --- Patch is 77.23 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/119638.diff 48 Files Affected: - (modified) clang/include/clang/Basic/Builtins.h (+36-169) - (modified) clang/include/clang/Basic/BuiltinsPPC.def (-1) - (modified) clang/include/clang/Basic/TargetInfo.h (+5-6) - (modified) clang/lib/Basic/Builtins.cpp (+39-81) - (modified) clang/lib/Basic/Targets/AArch64.cpp (+28-32) - (modified) clang/lib/Basic/Targets/AArch64.h (+1-2) - (modified) clang/lib/Basic/Targets/AMDGPU.cpp (+9-14) - (modified) clang/lib/Basic/Targets/AMDGPU.h (+1-2) - (modified) clang/lib/Basic/Targets/ARC.h (+1-4) - (modified) clang/lib/Basic/Targets/ARM.cpp (+21-24) - (modified) clang/lib/Basic/Targets/ARM.h (+1-2) - (modified) clang/lib/Basic/Targets/AVR.h (+1-4) - (modified) clang/lib/Basic/Targets/BPF.cpp (+7-12) - (modified) clang/lib/Basic/Targets/BPF.h (+1-2) - (modified) clang/lib/Basic/Targets/CSKY.cpp (+4) - (modified) clang/lib/Basic/Targets/CSKY.h (+1-4) - (modified) clang/lib/Basic/Targets/DirectX.h (+1-4) - (modified) clang/lib/Basic/Targets/Hexagon.cpp (+11-15) - (modified) clang/lib/Basic/Targets/Hexagon.h (+1-2) - (modified) clang/lib/Basic/Targets/Lanai.h (+1-4) - (modified) clang/lib/Basic/Targets/LoongArch.cpp (+9-14) - (modified) clang/lib/Basic/Targets/LoongArch.h (+1-2) - (modified) clang/lib/Basic/Targets/M68k.cpp (+2-3) - (modified) clang/lib/Basic/Targets/M68k.h (+1-2) - (modified) clang/lib/Basic/Targets/MSP430.h (+2-3) - (modified) clang/lib/Basic/Targets/Mips.cpp (+9-13) - (modified) clang/lib/Basic/Targets/Mips.h (+1-2) - (modified) clang/lib/Basic/Targets/NVPTX.cpp (+11-15) - (modified) clang/lib/Basic/Targets/NVPTX.h (+1-2) - (modified) clang/lib/Basic/Targets/PNaCl.h (+1-4) - (modified) clang/lib/Basic/Targets/PPC.cpp (+11-15) - (modified) clang/lib/Basic/Targets/PPC.h (+1-2) - (modified) clang/lib/Basic/Targets/RISCV.cpp (+13-19) - (modified) clang/lib/Basic/Targets/RISCV.h (+1-2) - (modified) clang/lib/Basic/Targets/SPIR.cpp (+2-3) - (modified) clang/lib/Basic/Targets/SPIR.h (+2-6) - (modified) clang/lib/Basic/Targets/Sparc.h (+2-3) - (modified) clang/lib/Basic/Targets/SystemZ.cpp (+9-14) - (modified) clang/lib/Basic/Targets/SystemZ.h (+1-2) - (modified) clang/lib/Basic/Targets/TCE.h (+1-4) - (modified) clang/lib/Basic/Targets/VE.cpp (+7-12) - (modified) clang/lib/Basic/Targets/VE.h (+1-2) - (modified) clang/lib/Basic/Targets/WebAssembly.cpp (+11-15) - (modified) clang/lib/Basic/Targets/WebAssembly.h (+1-2) - (modified) clang/lib/Basic/Targets/X86.cpp (+26-42) - (modified) clang/lib/Basic/Targets/X86.h (+2-4) - (modified) clang/lib/Basic/Targets/XCore.cpp (+9-13) - (modified) clang/lib/Basic/Targets/XCore.h (+1-2) ``diff diff --git a/clang/include/clang/Basic/Builtins.h b/clang/include/clang/Basic/Builtins.h index a9bb6efe850cc6..89f65682ae5b41 100644 --- a/clang/include/clang/Basic/Builtins.h +++ b/clang/include/clang/Basic/Builtins.h @@ -55,7 +55,6 @@ struct HeaderDesc { #undef HEADER } ID; - constexpr HeaderDesc() : ID() {} constexpr HeaderDesc(HeaderID ID) : ID(ID) {} const char *getName() const; @@ -69,140 +68,14 @@ enum ID { FirstTSBuiltin }; -// The info used to represent each builtin. struct Info { - // Rather than store pointers to the string literals describing these four - // aspects of builtins, we store offsets into a common string table. - struct StrOffsets { -int Name; -int Type; -int Attributes; -int Features; - } Offsets; - + llvm::StringLiteral Name; + const char *Type, *Attributes; + const char *Features; HeaderDesc Header; LanguageID Langs; }; -// The storage for `N` builtins. This contains a single pointer to the string -// table used for these builtins and an array of metadata for each builtin. -template struct Storage { - const char *StringTable; - - std::array Infos; - - // A constexpr function to construct the storage for a a given string table in - // the first argument and an array in the second argument. This is *only* - // expected to be used at compile time, we should mark it `consteval` when - // available. - // - // The `Infos` array is particularly special. This function expects an array - // of `Info` structs, where the string offsets
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
llvmbot wrote: @llvm/pr-subscribers-backend-sparc Author: Chandler Carruth (chandlerc) Changes Reverts llvm/llvm-project#118734 There is currently a specific (unreleased?) version of MSVC and builder that are crashing / failing on this code. We don't know why as all the other build bots and at least some folks' local Windows builds work fine. This is a candidate revert to help the relevant folks catch their builders up and have time to debug the issue. However, it should only be submitted if we have a fairly concrete ETA on figuring out what is going wrong and suggesting some path forward given that no one else has thus far reproduced the issue. --- Patch is 77.23 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/119638.diff 48 Files Affected: - (modified) clang/include/clang/Basic/Builtins.h (+36-169) - (modified) clang/include/clang/Basic/BuiltinsPPC.def (-1) - (modified) clang/include/clang/Basic/TargetInfo.h (+5-6) - (modified) clang/lib/Basic/Builtins.cpp (+39-81) - (modified) clang/lib/Basic/Targets/AArch64.cpp (+28-32) - (modified) clang/lib/Basic/Targets/AArch64.h (+1-2) - (modified) clang/lib/Basic/Targets/AMDGPU.cpp (+9-14) - (modified) clang/lib/Basic/Targets/AMDGPU.h (+1-2) - (modified) clang/lib/Basic/Targets/ARC.h (+1-4) - (modified) clang/lib/Basic/Targets/ARM.cpp (+21-24) - (modified) clang/lib/Basic/Targets/ARM.h (+1-2) - (modified) clang/lib/Basic/Targets/AVR.h (+1-4) - (modified) clang/lib/Basic/Targets/BPF.cpp (+7-12) - (modified) clang/lib/Basic/Targets/BPF.h (+1-2) - (modified) clang/lib/Basic/Targets/CSKY.cpp (+4) - (modified) clang/lib/Basic/Targets/CSKY.h (+1-4) - (modified) clang/lib/Basic/Targets/DirectX.h (+1-4) - (modified) clang/lib/Basic/Targets/Hexagon.cpp (+11-15) - (modified) clang/lib/Basic/Targets/Hexagon.h (+1-2) - (modified) clang/lib/Basic/Targets/Lanai.h (+1-4) - (modified) clang/lib/Basic/Targets/LoongArch.cpp (+9-14) - (modified) clang/lib/Basic/Targets/LoongArch.h (+1-2) - (modified) clang/lib/Basic/Targets/M68k.cpp (+2-3) - (modified) clang/lib/Basic/Targets/M68k.h (+1-2) - (modified) clang/lib/Basic/Targets/MSP430.h (+2-3) - (modified) clang/lib/Basic/Targets/Mips.cpp (+9-13) - (modified) clang/lib/Basic/Targets/Mips.h (+1-2) - (modified) clang/lib/Basic/Targets/NVPTX.cpp (+11-15) - (modified) clang/lib/Basic/Targets/NVPTX.h (+1-2) - (modified) clang/lib/Basic/Targets/PNaCl.h (+1-4) - (modified) clang/lib/Basic/Targets/PPC.cpp (+11-15) - (modified) clang/lib/Basic/Targets/PPC.h (+1-2) - (modified) clang/lib/Basic/Targets/RISCV.cpp (+13-19) - (modified) clang/lib/Basic/Targets/RISCV.h (+1-2) - (modified) clang/lib/Basic/Targets/SPIR.cpp (+2-3) - (modified) clang/lib/Basic/Targets/SPIR.h (+2-6) - (modified) clang/lib/Basic/Targets/Sparc.h (+2-3) - (modified) clang/lib/Basic/Targets/SystemZ.cpp (+9-14) - (modified) clang/lib/Basic/Targets/SystemZ.h (+1-2) - (modified) clang/lib/Basic/Targets/TCE.h (+1-4) - (modified) clang/lib/Basic/Targets/VE.cpp (+7-12) - (modified) clang/lib/Basic/Targets/VE.h (+1-2) - (modified) clang/lib/Basic/Targets/WebAssembly.cpp (+11-15) - (modified) clang/lib/Basic/Targets/WebAssembly.h (+1-2) - (modified) clang/lib/Basic/Targets/X86.cpp (+26-42) - (modified) clang/lib/Basic/Targets/X86.h (+2-4) - (modified) clang/lib/Basic/Targets/XCore.cpp (+9-13) - (modified) clang/lib/Basic/Targets/XCore.h (+1-2) ``diff diff --git a/clang/include/clang/Basic/Builtins.h b/clang/include/clang/Basic/Builtins.h index a9bb6efe850cc6..89f65682ae5b41 100644 --- a/clang/include/clang/Basic/Builtins.h +++ b/clang/include/clang/Basic/Builtins.h @@ -55,7 +55,6 @@ struct HeaderDesc { #undef HEADER } ID; - constexpr HeaderDesc() : ID() {} constexpr HeaderDesc(HeaderID ID) : ID(ID) {} const char *getName() const; @@ -69,140 +68,14 @@ enum ID { FirstTSBuiltin }; -// The info used to represent each builtin. struct Info { - // Rather than store pointers to the string literals describing these four - // aspects of builtins, we store offsets into a common string table. - struct StrOffsets { -int Name; -int Type; -int Attributes; -int Features; - } Offsets; - + llvm::StringLiteral Name; + const char *Type, *Attributes; + const char *Features; HeaderDesc Header; LanguageID Langs; }; -// The storage for `N` builtins. This contains a single pointer to the string -// table used for these builtins and an array of metadata for each builtin. -template struct Storage { - const char *StringTable; - - std::array Infos; - - // A constexpr function to construct the storage for a a given string table in - // the first argument and an array in the second argument. This is *only* - // expected to be used at compile time, we should mark it `consteval` when - // available. - // - // The `Infos` array is particularly special. This function expects an array - // of `Info` structs, where the string offsets
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
llvmbot wrote: @llvm/pr-subscribers-backend-hexagon Author: Chandler Carruth (chandlerc) Changes Reverts llvm/llvm-project#118734 There is currently a specific (unreleased?) version of MSVC and builder that are crashing / failing on this code. We don't know why as all the other build bots and at least some folks' local Windows builds work fine. This is a candidate revert to help the relevant folks catch their builders up and have time to debug the issue. However, it should only be submitted if we have a fairly concrete ETA on figuring out what is going wrong and suggesting some path forward given that no one else has thus far reproduced the issue. --- Patch is 77.23 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/119638.diff 48 Files Affected: - (modified) clang/include/clang/Basic/Builtins.h (+36-169) - (modified) clang/include/clang/Basic/BuiltinsPPC.def (-1) - (modified) clang/include/clang/Basic/TargetInfo.h (+5-6) - (modified) clang/lib/Basic/Builtins.cpp (+39-81) - (modified) clang/lib/Basic/Targets/AArch64.cpp (+28-32) - (modified) clang/lib/Basic/Targets/AArch64.h (+1-2) - (modified) clang/lib/Basic/Targets/AMDGPU.cpp (+9-14) - (modified) clang/lib/Basic/Targets/AMDGPU.h (+1-2) - (modified) clang/lib/Basic/Targets/ARC.h (+1-4) - (modified) clang/lib/Basic/Targets/ARM.cpp (+21-24) - (modified) clang/lib/Basic/Targets/ARM.h (+1-2) - (modified) clang/lib/Basic/Targets/AVR.h (+1-4) - (modified) clang/lib/Basic/Targets/BPF.cpp (+7-12) - (modified) clang/lib/Basic/Targets/BPF.h (+1-2) - (modified) clang/lib/Basic/Targets/CSKY.cpp (+4) - (modified) clang/lib/Basic/Targets/CSKY.h (+1-4) - (modified) clang/lib/Basic/Targets/DirectX.h (+1-4) - (modified) clang/lib/Basic/Targets/Hexagon.cpp (+11-15) - (modified) clang/lib/Basic/Targets/Hexagon.h (+1-2) - (modified) clang/lib/Basic/Targets/Lanai.h (+1-4) - (modified) clang/lib/Basic/Targets/LoongArch.cpp (+9-14) - (modified) clang/lib/Basic/Targets/LoongArch.h (+1-2) - (modified) clang/lib/Basic/Targets/M68k.cpp (+2-3) - (modified) clang/lib/Basic/Targets/M68k.h (+1-2) - (modified) clang/lib/Basic/Targets/MSP430.h (+2-3) - (modified) clang/lib/Basic/Targets/Mips.cpp (+9-13) - (modified) clang/lib/Basic/Targets/Mips.h (+1-2) - (modified) clang/lib/Basic/Targets/NVPTX.cpp (+11-15) - (modified) clang/lib/Basic/Targets/NVPTX.h (+1-2) - (modified) clang/lib/Basic/Targets/PNaCl.h (+1-4) - (modified) clang/lib/Basic/Targets/PPC.cpp (+11-15) - (modified) clang/lib/Basic/Targets/PPC.h (+1-2) - (modified) clang/lib/Basic/Targets/RISCV.cpp (+13-19) - (modified) clang/lib/Basic/Targets/RISCV.h (+1-2) - (modified) clang/lib/Basic/Targets/SPIR.cpp (+2-3) - (modified) clang/lib/Basic/Targets/SPIR.h (+2-6) - (modified) clang/lib/Basic/Targets/Sparc.h (+2-3) - (modified) clang/lib/Basic/Targets/SystemZ.cpp (+9-14) - (modified) clang/lib/Basic/Targets/SystemZ.h (+1-2) - (modified) clang/lib/Basic/Targets/TCE.h (+1-4) - (modified) clang/lib/Basic/Targets/VE.cpp (+7-12) - (modified) clang/lib/Basic/Targets/VE.h (+1-2) - (modified) clang/lib/Basic/Targets/WebAssembly.cpp (+11-15) - (modified) clang/lib/Basic/Targets/WebAssembly.h (+1-2) - (modified) clang/lib/Basic/Targets/X86.cpp (+26-42) - (modified) clang/lib/Basic/Targets/X86.h (+2-4) - (modified) clang/lib/Basic/Targets/XCore.cpp (+9-13) - (modified) clang/lib/Basic/Targets/XCore.h (+1-2) ``diff diff --git a/clang/include/clang/Basic/Builtins.h b/clang/include/clang/Basic/Builtins.h index a9bb6efe850cc6..89f65682ae5b41 100644 --- a/clang/include/clang/Basic/Builtins.h +++ b/clang/include/clang/Basic/Builtins.h @@ -55,7 +55,6 @@ struct HeaderDesc { #undef HEADER } ID; - constexpr HeaderDesc() : ID() {} constexpr HeaderDesc(HeaderID ID) : ID(ID) {} const char *getName() const; @@ -69,140 +68,14 @@ enum ID { FirstTSBuiltin }; -// The info used to represent each builtin. struct Info { - // Rather than store pointers to the string literals describing these four - // aspects of builtins, we store offsets into a common string table. - struct StrOffsets { -int Name; -int Type; -int Attributes; -int Features; - } Offsets; - + llvm::StringLiteral Name; + const char *Type, *Attributes; + const char *Features; HeaderDesc Header; LanguageID Langs; }; -// The storage for `N` builtins. This contains a single pointer to the string -// table used for these builtins and an array of metadata for each builtin. -template struct Storage { - const char *StringTable; - - std::array Infos; - - // A constexpr function to construct the storage for a a given string table in - // the first argument and an array in the second argument. This is *only* - // expected to be used at compile time, we should mark it `consteval` when - // available. - // - // The `Infos` array is particularly special. This function expects an array - // of `Info` structs, where the string offse
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
llvmbot wrote: @llvm/pr-subscribers-backend-aarch64 Author: Chandler Carruth (chandlerc) Changes Reverts llvm/llvm-project#118734 There is currently a specific (unreleased?) version of MSVC and builder that are crashing / failing on this code. We don't know why as all the other build bots and at least some folks' local Windows builds work fine. This is a candidate revert to help the relevant folks catch their builders up and have time to debug the issue. However, it should only be submitted if we have a fairly concrete ETA on figuring out what is going wrong and suggesting some path forward given that no one else has thus far reproduced the issue. --- Patch is 77.23 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/119638.diff 48 Files Affected: - (modified) clang/include/clang/Basic/Builtins.h (+36-169) - (modified) clang/include/clang/Basic/BuiltinsPPC.def (-1) - (modified) clang/include/clang/Basic/TargetInfo.h (+5-6) - (modified) clang/lib/Basic/Builtins.cpp (+39-81) - (modified) clang/lib/Basic/Targets/AArch64.cpp (+28-32) - (modified) clang/lib/Basic/Targets/AArch64.h (+1-2) - (modified) clang/lib/Basic/Targets/AMDGPU.cpp (+9-14) - (modified) clang/lib/Basic/Targets/AMDGPU.h (+1-2) - (modified) clang/lib/Basic/Targets/ARC.h (+1-4) - (modified) clang/lib/Basic/Targets/ARM.cpp (+21-24) - (modified) clang/lib/Basic/Targets/ARM.h (+1-2) - (modified) clang/lib/Basic/Targets/AVR.h (+1-4) - (modified) clang/lib/Basic/Targets/BPF.cpp (+7-12) - (modified) clang/lib/Basic/Targets/BPF.h (+1-2) - (modified) clang/lib/Basic/Targets/CSKY.cpp (+4) - (modified) clang/lib/Basic/Targets/CSKY.h (+1-4) - (modified) clang/lib/Basic/Targets/DirectX.h (+1-4) - (modified) clang/lib/Basic/Targets/Hexagon.cpp (+11-15) - (modified) clang/lib/Basic/Targets/Hexagon.h (+1-2) - (modified) clang/lib/Basic/Targets/Lanai.h (+1-4) - (modified) clang/lib/Basic/Targets/LoongArch.cpp (+9-14) - (modified) clang/lib/Basic/Targets/LoongArch.h (+1-2) - (modified) clang/lib/Basic/Targets/M68k.cpp (+2-3) - (modified) clang/lib/Basic/Targets/M68k.h (+1-2) - (modified) clang/lib/Basic/Targets/MSP430.h (+2-3) - (modified) clang/lib/Basic/Targets/Mips.cpp (+9-13) - (modified) clang/lib/Basic/Targets/Mips.h (+1-2) - (modified) clang/lib/Basic/Targets/NVPTX.cpp (+11-15) - (modified) clang/lib/Basic/Targets/NVPTX.h (+1-2) - (modified) clang/lib/Basic/Targets/PNaCl.h (+1-4) - (modified) clang/lib/Basic/Targets/PPC.cpp (+11-15) - (modified) clang/lib/Basic/Targets/PPC.h (+1-2) - (modified) clang/lib/Basic/Targets/RISCV.cpp (+13-19) - (modified) clang/lib/Basic/Targets/RISCV.h (+1-2) - (modified) clang/lib/Basic/Targets/SPIR.cpp (+2-3) - (modified) clang/lib/Basic/Targets/SPIR.h (+2-6) - (modified) clang/lib/Basic/Targets/Sparc.h (+2-3) - (modified) clang/lib/Basic/Targets/SystemZ.cpp (+9-14) - (modified) clang/lib/Basic/Targets/SystemZ.h (+1-2) - (modified) clang/lib/Basic/Targets/TCE.h (+1-4) - (modified) clang/lib/Basic/Targets/VE.cpp (+7-12) - (modified) clang/lib/Basic/Targets/VE.h (+1-2) - (modified) clang/lib/Basic/Targets/WebAssembly.cpp (+11-15) - (modified) clang/lib/Basic/Targets/WebAssembly.h (+1-2) - (modified) clang/lib/Basic/Targets/X86.cpp (+26-42) - (modified) clang/lib/Basic/Targets/X86.h (+2-4) - (modified) clang/lib/Basic/Targets/XCore.cpp (+9-13) - (modified) clang/lib/Basic/Targets/XCore.h (+1-2) ``diff diff --git a/clang/include/clang/Basic/Builtins.h b/clang/include/clang/Basic/Builtins.h index a9bb6efe850cc6..89f65682ae5b41 100644 --- a/clang/include/clang/Basic/Builtins.h +++ b/clang/include/clang/Basic/Builtins.h @@ -55,7 +55,6 @@ struct HeaderDesc { #undef HEADER } ID; - constexpr HeaderDesc() : ID() {} constexpr HeaderDesc(HeaderID ID) : ID(ID) {} const char *getName() const; @@ -69,140 +68,14 @@ enum ID { FirstTSBuiltin }; -// The info used to represent each builtin. struct Info { - // Rather than store pointers to the string literals describing these four - // aspects of builtins, we store offsets into a common string table. - struct StrOffsets { -int Name; -int Type; -int Attributes; -int Features; - } Offsets; - + llvm::StringLiteral Name; + const char *Type, *Attributes; + const char *Features; HeaderDesc Header; LanguageID Langs; }; -// The storage for `N` builtins. This contains a single pointer to the string -// table used for these builtins and an array of metadata for each builtin. -template struct Storage { - const char *StringTable; - - std::array Infos; - - // A constexpr function to construct the storage for a a given string table in - // the first argument and an array in the second argument. This is *only* - // expected to be used at compile time, we should mark it `consteval` when - // available. - // - // The `Infos` array is particularly special. This function expects an array - // of `Info` structs, where the string offse
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
llvmbot wrote: @llvm/pr-subscribers-clang Author: Chandler Carruth (chandlerc) Changes Reverts llvm/llvm-project#118734 There is currently a specific (unreleased?) version of MSVC and builder that are crashing / failing on this code. We don't know why as all the other build bots and at least some folks' local Windows builds work fine. This is a candidate revert to help the relevant folks catch their builders up and have time to debug the issue. However, it should only be submitted if we have a fairly concrete ETA on figuring out what is going wrong and suggesting some path forward given that no one else has thus far reproduced the issue. --- Patch is 77.23 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/119638.diff 48 Files Affected: - (modified) clang/include/clang/Basic/Builtins.h (+36-169) - (modified) clang/include/clang/Basic/BuiltinsPPC.def (-1) - (modified) clang/include/clang/Basic/TargetInfo.h (+5-6) - (modified) clang/lib/Basic/Builtins.cpp (+39-81) - (modified) clang/lib/Basic/Targets/AArch64.cpp (+28-32) - (modified) clang/lib/Basic/Targets/AArch64.h (+1-2) - (modified) clang/lib/Basic/Targets/AMDGPU.cpp (+9-14) - (modified) clang/lib/Basic/Targets/AMDGPU.h (+1-2) - (modified) clang/lib/Basic/Targets/ARC.h (+1-4) - (modified) clang/lib/Basic/Targets/ARM.cpp (+21-24) - (modified) clang/lib/Basic/Targets/ARM.h (+1-2) - (modified) clang/lib/Basic/Targets/AVR.h (+1-4) - (modified) clang/lib/Basic/Targets/BPF.cpp (+7-12) - (modified) clang/lib/Basic/Targets/BPF.h (+1-2) - (modified) clang/lib/Basic/Targets/CSKY.cpp (+4) - (modified) clang/lib/Basic/Targets/CSKY.h (+1-4) - (modified) clang/lib/Basic/Targets/DirectX.h (+1-4) - (modified) clang/lib/Basic/Targets/Hexagon.cpp (+11-15) - (modified) clang/lib/Basic/Targets/Hexagon.h (+1-2) - (modified) clang/lib/Basic/Targets/Lanai.h (+1-4) - (modified) clang/lib/Basic/Targets/LoongArch.cpp (+9-14) - (modified) clang/lib/Basic/Targets/LoongArch.h (+1-2) - (modified) clang/lib/Basic/Targets/M68k.cpp (+2-3) - (modified) clang/lib/Basic/Targets/M68k.h (+1-2) - (modified) clang/lib/Basic/Targets/MSP430.h (+2-3) - (modified) clang/lib/Basic/Targets/Mips.cpp (+9-13) - (modified) clang/lib/Basic/Targets/Mips.h (+1-2) - (modified) clang/lib/Basic/Targets/NVPTX.cpp (+11-15) - (modified) clang/lib/Basic/Targets/NVPTX.h (+1-2) - (modified) clang/lib/Basic/Targets/PNaCl.h (+1-4) - (modified) clang/lib/Basic/Targets/PPC.cpp (+11-15) - (modified) clang/lib/Basic/Targets/PPC.h (+1-2) - (modified) clang/lib/Basic/Targets/RISCV.cpp (+13-19) - (modified) clang/lib/Basic/Targets/RISCV.h (+1-2) - (modified) clang/lib/Basic/Targets/SPIR.cpp (+2-3) - (modified) clang/lib/Basic/Targets/SPIR.h (+2-6) - (modified) clang/lib/Basic/Targets/Sparc.h (+2-3) - (modified) clang/lib/Basic/Targets/SystemZ.cpp (+9-14) - (modified) clang/lib/Basic/Targets/SystemZ.h (+1-2) - (modified) clang/lib/Basic/Targets/TCE.h (+1-4) - (modified) clang/lib/Basic/Targets/VE.cpp (+7-12) - (modified) clang/lib/Basic/Targets/VE.h (+1-2) - (modified) clang/lib/Basic/Targets/WebAssembly.cpp (+11-15) - (modified) clang/lib/Basic/Targets/WebAssembly.h (+1-2) - (modified) clang/lib/Basic/Targets/X86.cpp (+26-42) - (modified) clang/lib/Basic/Targets/X86.h (+2-4) - (modified) clang/lib/Basic/Targets/XCore.cpp (+9-13) - (modified) clang/lib/Basic/Targets/XCore.h (+1-2) ``diff diff --git a/clang/include/clang/Basic/Builtins.h b/clang/include/clang/Basic/Builtins.h index a9bb6efe850cc6..89f65682ae5b41 100644 --- a/clang/include/clang/Basic/Builtins.h +++ b/clang/include/clang/Basic/Builtins.h @@ -55,7 +55,6 @@ struct HeaderDesc { #undef HEADER } ID; - constexpr HeaderDesc() : ID() {} constexpr HeaderDesc(HeaderID ID) : ID(ID) {} const char *getName() const; @@ -69,140 +68,14 @@ enum ID { FirstTSBuiltin }; -// The info used to represent each builtin. struct Info { - // Rather than store pointers to the string literals describing these four - // aspects of builtins, we store offsets into a common string table. - struct StrOffsets { -int Name; -int Type; -int Attributes; -int Features; - } Offsets; - + llvm::StringLiteral Name; + const char *Type, *Attributes; + const char *Features; HeaderDesc Header; LanguageID Langs; }; -// The storage for `N` builtins. This contains a single pointer to the string -// table used for these builtins and an array of metadata for each builtin. -template struct Storage { - const char *StringTable; - - std::array Infos; - - // A constexpr function to construct the storage for a a given string table in - // the first argument and an array in the second argument. This is *only* - // expected to be used at compile time, we should mark it `consteval` when - // available. - // - // The `Infos` array is particularly special. This function expects an array - // of `Info` structs, where the string offsets of each
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
llvmbot wrote: @llvm/pr-subscribers-backend-systemz @llvm/pr-subscribers-backend-msp430 Author: Chandler Carruth (chandlerc) Changes Reverts llvm/llvm-project#118734 There is currently a specific (unreleased?) version of MSVC and builder that are crashing / failing on this code. We don't know why as all the other build bots and at least some folks' local Windows builds work fine. This is a candidate revert to help the relevant folks catch their builders up and have time to debug the issue. However, it should only be submitted if we have a fairly concrete ETA on figuring out what is going wrong and suggesting some path forward given that no one else has thus far reproduced the issue. --- Patch is 77.23 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/119638.diff 48 Files Affected: - (modified) clang/include/clang/Basic/Builtins.h (+36-169) - (modified) clang/include/clang/Basic/BuiltinsPPC.def (-1) - (modified) clang/include/clang/Basic/TargetInfo.h (+5-6) - (modified) clang/lib/Basic/Builtins.cpp (+39-81) - (modified) clang/lib/Basic/Targets/AArch64.cpp (+28-32) - (modified) clang/lib/Basic/Targets/AArch64.h (+1-2) - (modified) clang/lib/Basic/Targets/AMDGPU.cpp (+9-14) - (modified) clang/lib/Basic/Targets/AMDGPU.h (+1-2) - (modified) clang/lib/Basic/Targets/ARC.h (+1-4) - (modified) clang/lib/Basic/Targets/ARM.cpp (+21-24) - (modified) clang/lib/Basic/Targets/ARM.h (+1-2) - (modified) clang/lib/Basic/Targets/AVR.h (+1-4) - (modified) clang/lib/Basic/Targets/BPF.cpp (+7-12) - (modified) clang/lib/Basic/Targets/BPF.h (+1-2) - (modified) clang/lib/Basic/Targets/CSKY.cpp (+4) - (modified) clang/lib/Basic/Targets/CSKY.h (+1-4) - (modified) clang/lib/Basic/Targets/DirectX.h (+1-4) - (modified) clang/lib/Basic/Targets/Hexagon.cpp (+11-15) - (modified) clang/lib/Basic/Targets/Hexagon.h (+1-2) - (modified) clang/lib/Basic/Targets/Lanai.h (+1-4) - (modified) clang/lib/Basic/Targets/LoongArch.cpp (+9-14) - (modified) clang/lib/Basic/Targets/LoongArch.h (+1-2) - (modified) clang/lib/Basic/Targets/M68k.cpp (+2-3) - (modified) clang/lib/Basic/Targets/M68k.h (+1-2) - (modified) clang/lib/Basic/Targets/MSP430.h (+2-3) - (modified) clang/lib/Basic/Targets/Mips.cpp (+9-13) - (modified) clang/lib/Basic/Targets/Mips.h (+1-2) - (modified) clang/lib/Basic/Targets/NVPTX.cpp (+11-15) - (modified) clang/lib/Basic/Targets/NVPTX.h (+1-2) - (modified) clang/lib/Basic/Targets/PNaCl.h (+1-4) - (modified) clang/lib/Basic/Targets/PPC.cpp (+11-15) - (modified) clang/lib/Basic/Targets/PPC.h (+1-2) - (modified) clang/lib/Basic/Targets/RISCV.cpp (+13-19) - (modified) clang/lib/Basic/Targets/RISCV.h (+1-2) - (modified) clang/lib/Basic/Targets/SPIR.cpp (+2-3) - (modified) clang/lib/Basic/Targets/SPIR.h (+2-6) - (modified) clang/lib/Basic/Targets/Sparc.h (+2-3) - (modified) clang/lib/Basic/Targets/SystemZ.cpp (+9-14) - (modified) clang/lib/Basic/Targets/SystemZ.h (+1-2) - (modified) clang/lib/Basic/Targets/TCE.h (+1-4) - (modified) clang/lib/Basic/Targets/VE.cpp (+7-12) - (modified) clang/lib/Basic/Targets/VE.h (+1-2) - (modified) clang/lib/Basic/Targets/WebAssembly.cpp (+11-15) - (modified) clang/lib/Basic/Targets/WebAssembly.h (+1-2) - (modified) clang/lib/Basic/Targets/X86.cpp (+26-42) - (modified) clang/lib/Basic/Targets/X86.h (+2-4) - (modified) clang/lib/Basic/Targets/XCore.cpp (+9-13) - (modified) clang/lib/Basic/Targets/XCore.h (+1-2) ``diff diff --git a/clang/include/clang/Basic/Builtins.h b/clang/include/clang/Basic/Builtins.h index a9bb6efe850cc6..89f65682ae5b41 100644 --- a/clang/include/clang/Basic/Builtins.h +++ b/clang/include/clang/Basic/Builtins.h @@ -55,7 +55,6 @@ struct HeaderDesc { #undef HEADER } ID; - constexpr HeaderDesc() : ID() {} constexpr HeaderDesc(HeaderID ID) : ID(ID) {} const char *getName() const; @@ -69,140 +68,14 @@ enum ID { FirstTSBuiltin }; -// The info used to represent each builtin. struct Info { - // Rather than store pointers to the string literals describing these four - // aspects of builtins, we store offsets into a common string table. - struct StrOffsets { -int Name; -int Type; -int Attributes; -int Features; - } Offsets; - + llvm::StringLiteral Name; + const char *Type, *Attributes; + const char *Features; HeaderDesc Header; LanguageID Langs; }; -// The storage for `N` builtins. This contains a single pointer to the string -// table used for these builtins and an array of metadata for each builtin. -template struct Storage { - const char *StringTable; - - std::array Infos; - - // A constexpr function to construct the storage for a a given string table in - // the first argument and an array in the second argument. This is *only* - // expected to be used at compile time, we should mark it `consteval` when - // available. - // - // The `Infos` array is particularly special. This function expects an array - // of `I
[clang] Revert "Switch builtin strings to use string tables" (PR #119638)
llvmbot wrote: @llvm/pr-subscribers-backend-risc-v Author: Chandler Carruth (chandlerc) Changes Reverts llvm/llvm-project#118734 There is currently a specific (unreleased?) version of MSVC and builder that are crashing / failing on this code. We don't know why as all the other build bots and at least some folks' local Windows builds work fine. This is a candidate revert to help the relevant folks catch their builders up and have time to debug the issue. However, it should only be submitted if we have a fairly concrete ETA on figuring out what is going wrong and suggesting some path forward given that no one else has thus far reproduced the issue. --- Patch is 77.23 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/119638.diff 48 Files Affected: - (modified) clang/include/clang/Basic/Builtins.h (+36-169) - (modified) clang/include/clang/Basic/BuiltinsPPC.def (-1) - (modified) clang/include/clang/Basic/TargetInfo.h (+5-6) - (modified) clang/lib/Basic/Builtins.cpp (+39-81) - (modified) clang/lib/Basic/Targets/AArch64.cpp (+28-32) - (modified) clang/lib/Basic/Targets/AArch64.h (+1-2) - (modified) clang/lib/Basic/Targets/AMDGPU.cpp (+9-14) - (modified) clang/lib/Basic/Targets/AMDGPU.h (+1-2) - (modified) clang/lib/Basic/Targets/ARC.h (+1-4) - (modified) clang/lib/Basic/Targets/ARM.cpp (+21-24) - (modified) clang/lib/Basic/Targets/ARM.h (+1-2) - (modified) clang/lib/Basic/Targets/AVR.h (+1-4) - (modified) clang/lib/Basic/Targets/BPF.cpp (+7-12) - (modified) clang/lib/Basic/Targets/BPF.h (+1-2) - (modified) clang/lib/Basic/Targets/CSKY.cpp (+4) - (modified) clang/lib/Basic/Targets/CSKY.h (+1-4) - (modified) clang/lib/Basic/Targets/DirectX.h (+1-4) - (modified) clang/lib/Basic/Targets/Hexagon.cpp (+11-15) - (modified) clang/lib/Basic/Targets/Hexagon.h (+1-2) - (modified) clang/lib/Basic/Targets/Lanai.h (+1-4) - (modified) clang/lib/Basic/Targets/LoongArch.cpp (+9-14) - (modified) clang/lib/Basic/Targets/LoongArch.h (+1-2) - (modified) clang/lib/Basic/Targets/M68k.cpp (+2-3) - (modified) clang/lib/Basic/Targets/M68k.h (+1-2) - (modified) clang/lib/Basic/Targets/MSP430.h (+2-3) - (modified) clang/lib/Basic/Targets/Mips.cpp (+9-13) - (modified) clang/lib/Basic/Targets/Mips.h (+1-2) - (modified) clang/lib/Basic/Targets/NVPTX.cpp (+11-15) - (modified) clang/lib/Basic/Targets/NVPTX.h (+1-2) - (modified) clang/lib/Basic/Targets/PNaCl.h (+1-4) - (modified) clang/lib/Basic/Targets/PPC.cpp (+11-15) - (modified) clang/lib/Basic/Targets/PPC.h (+1-2) - (modified) clang/lib/Basic/Targets/RISCV.cpp (+13-19) - (modified) clang/lib/Basic/Targets/RISCV.h (+1-2) - (modified) clang/lib/Basic/Targets/SPIR.cpp (+2-3) - (modified) clang/lib/Basic/Targets/SPIR.h (+2-6) - (modified) clang/lib/Basic/Targets/Sparc.h (+2-3) - (modified) clang/lib/Basic/Targets/SystemZ.cpp (+9-14) - (modified) clang/lib/Basic/Targets/SystemZ.h (+1-2) - (modified) clang/lib/Basic/Targets/TCE.h (+1-4) - (modified) clang/lib/Basic/Targets/VE.cpp (+7-12) - (modified) clang/lib/Basic/Targets/VE.h (+1-2) - (modified) clang/lib/Basic/Targets/WebAssembly.cpp (+11-15) - (modified) clang/lib/Basic/Targets/WebAssembly.h (+1-2) - (modified) clang/lib/Basic/Targets/X86.cpp (+26-42) - (modified) clang/lib/Basic/Targets/X86.h (+2-4) - (modified) clang/lib/Basic/Targets/XCore.cpp (+9-13) - (modified) clang/lib/Basic/Targets/XCore.h (+1-2) ``diff diff --git a/clang/include/clang/Basic/Builtins.h b/clang/include/clang/Basic/Builtins.h index a9bb6efe850cc6..89f65682ae5b41 100644 --- a/clang/include/clang/Basic/Builtins.h +++ b/clang/include/clang/Basic/Builtins.h @@ -55,7 +55,6 @@ struct HeaderDesc { #undef HEADER } ID; - constexpr HeaderDesc() : ID() {} constexpr HeaderDesc(HeaderID ID) : ID(ID) {} const char *getName() const; @@ -69,140 +68,14 @@ enum ID { FirstTSBuiltin }; -// The info used to represent each builtin. struct Info { - // Rather than store pointers to the string literals describing these four - // aspects of builtins, we store offsets into a common string table. - struct StrOffsets { -int Name; -int Type; -int Attributes; -int Features; - } Offsets; - + llvm::StringLiteral Name; + const char *Type, *Attributes; + const char *Features; HeaderDesc Header; LanguageID Langs; }; -// The storage for `N` builtins. This contains a single pointer to the string -// table used for these builtins and an array of metadata for each builtin. -template struct Storage { - const char *StringTable; - - std::array Infos; - - // A constexpr function to construct the storage for a a given string table in - // the first argument and an array in the second argument. This is *only* - // expected to be used at compile time, we should mark it `consteval` when - // available. - // - // The `Infos` array is particularly special. This function expects an array - // of `Info` structs, where the string offset