[clang] [clang] Increase VecLib bitfield size to 4 bits in CodeGenOptions.def (PR #108804)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 17 06:49:21 PDT 2024


================
@@ -375,8 +375,13 @@ ENUM_CODEGENOPT(Inlining, InliningMethod, 2, NormalInlining)
 /// The maximum stack size a function can have to be considered for inlining.
 VALUE_CODEGENOPT(InlineMaxStackSize, 32, UINT_MAX)
 
+// Ensure the VecLib bitfield has enough space for future vector libraries.
+// If new vector libraries are added beyond the current limit of 16, this static assertion will fail.
+static_assert(static_cast<int>(llvm::driver::VectorLibrary::NoLibrary) <= 16, 
----------------
erichkeane wrote:

Hmm... I would very much like to avoid the magic # of 16 here.  Does LLVM have any helper libraries for 'get size of bitfield' that we could use?  If not, I think we need to be better about the comment, the 16 seems a little 'magic number'y with out some sort of, "As defined by the number of bits in the VecLib CODEGENOPT, defined below" in there.

So I guess I'm asking for either:
1- Make the comment VERY clear for our downstreams that these two are linked
2- (better) find a way to make the 16 get picked up 'automatically' based on the ENUM_CODEGENOPT below.

For 2, I might suggest doing something like:
```
#define VecLibBits
static_assert(blah blah)
ENUM_CODEGENOPT(blah blah...)

#undef VecLibBits
```

https://github.com/llvm/llvm-project/pull/108804


More information about the cfe-commits mailing list