[clang] Revert "Switch builtin strings to use string tables" (PR #119638)

2024-12-13 Thread Chandler Carruth via cfe-commits

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)

2024-12-13 Thread Chandler Carruth via cfe-commits

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)

2024-12-13 Thread Chandler Carruth via cfe-commits

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)

2024-12-13 Thread Chandler Carruth via cfe-commits

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)

2024-12-13 Thread Chandler Carruth via cfe-commits

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)

2024-12-13 Thread via cfe-commits

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)

2024-12-13 Thread via cfe-commits

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)

2024-12-11 Thread Chandler Carruth via cfe-commits

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)

2024-12-11 Thread Chandler Carruth via cfe-commits

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)

2024-12-11 Thread via cfe-commits

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)

2024-12-11 Thread via cfe-commits

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)

2024-12-11 Thread via cfe-commits

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)

2024-12-11 Thread via cfe-commits

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)

2024-12-11 Thread via cfe-commits

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)

2024-12-11 Thread via cfe-commits

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)

2024-12-11 Thread via cfe-commits

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)

2024-12-11 Thread via cfe-commits

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)

2024-12-11 Thread via cfe-commits

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