[llvm] [IntrinsicEmitter] Make AttributesMap PackedID type-adaptive (PR #158383)
Rahul Joshi via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 14 06:06:49 PDT 2025
================
@@ -633,17 +631,25 @@ static constexpr uint16_t IntrinsicsToAttributesMap[] = {)";
// Note, ID `-1` is used to indicate no function attributes.
const uint8_t UniqFnAttributesBitSize =
Log2_32_Ceil(UniqFnAttributes.size() + 2);
- const uint16_t NoFunctionAttrsID =
- maskTrailingOnes<uint16_t>(UniqFnAttributesBitSize);
- if (UniqAttributesBitSize + UniqFnAttributesBitSize > 16)
- PrintFatalError(
- "More than 16 bits are used for IntrinsicsToAttributesMap's entry!");
-
- // Assign a 16-bit packed ID for each intrinsic. The lower bits will be its
+ const uint32_t NoFunctionAttrsID =
+ maskTrailingOnes<uint32_t>(UniqFnAttributesBitSize);
+ uint8_t AttributesMapDataBitSize =
+ PowerOf2Ceil(UniqAttributesBitSize + UniqFnAttributesBitSize);
+ if (AttributesMapDataBitSize < 8)
+ AttributesMapDataBitSize = 8;
+ else if (AttributesMapDataBitSize > 64)
+ PrintFatalError("Packed ID of IntrinsicsToAttributesMap exceeds 64b!");
+ else if (AttributesMapDataBitSize > 16)
+ PrintWarning("Packed ID of IntrinsicsToAttributesMap exceeds 16b, "
----------------
jurahul wrote:
not sure if this warning is actionable in any way so maybe not generate it?
https://github.com/llvm/llvm-project/pull/158383
More information about the llvm-commits
mailing list