[llvm] 9b681ea - [IntrinsicEmitter] Make AttributesMap bound inclusive (#158714)

via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 18 08:10:12 PDT 2025


Author: Elvin Wang
Date: 2025-09-18T08:10:08-07:00
New Revision: 9b681ea50d1864c15bb4ff2d302caf4e973c8c71

URL: https://github.com/llvm/llvm-project/commit/9b681ea50d1864c15bb4ff2d302caf4e973c8c71
DIFF: https://github.com/llvm/llvm-project/commit/9b681ea50d1864c15bb4ff2d302caf4e973c8c71.diff

LOG: [IntrinsicEmitter] Make AttributesMap bound inclusive (#158714)

This is a minor fix from comment
https://github.com/llvm/llvm-project/pull/157965/files#r2347317186
introduced in #157965.

Added: 
    

Modified: 
    llvm/test/TableGen/intrinsic-attrs.td
    llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/test/TableGen/intrinsic-attrs.td b/llvm/test/TableGen/intrinsic-attrs.td
index ab808445f40a2..fbcc6aa0e9bf1 100644
--- a/llvm/test/TableGen/intrinsic-attrs.td
+++ b/llvm/test/TableGen/intrinsic-attrs.td
@@ -25,8 +25,8 @@ def int_deref_ptr_ret : Intrinsic<[llvm_ptr_ty], [], [Dereferenceable<RetIndex,
 // CHECK-NEXT: });
 
 // CHECK: static constexpr uint16_t IntrinsicsToAttributesMap[] = {
-// CHECK: 0 << 2 | 0, // llvm.deref.ptr.ret
-// CHECK: 1 << 2 | 1, // llvm.random.gen
+// CHECK: 0 << 1 | 0, // llvm.deref.ptr.ret
+// CHECK: 1 << 1 | 1, // llvm.random.gen
 // CHECK: }; // IntrinsicsToAttributesMap
 
 // CHECK: static constexpr ArgNoAttrIDPair ArgAttrIdTable[] = {

diff  --git a/llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp b/llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
index a702838afe463..a597edb399464 100644
--- a/llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
+++ b/llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
@@ -629,10 +629,10 @@ static constexpr uint16_t IntrinsicsToAttributesMap[] = {)";
     UniqAttributes.try_emplace(&Int, ID);
   }
 
-  const uint8_t UniqAttributesBitSize = Log2_32_Ceil(UniqAttributes.size() + 1);
+  const uint8_t UniqAttributesBitSize = Log2_32_Ceil(UniqAttributes.size());
   // Note, ID `-1` is used to indicate no function attributes.
   const uint8_t UniqFnAttributesBitSize =
-      Log2_32_Ceil(UniqFnAttributes.size() + 2);
+      Log2_32_Ceil(UniqFnAttributes.size() + 1);
   const uint16_t NoFunctionAttrsID =
       maskTrailingOnes<uint16_t>(UniqFnAttributesBitSize);
   if (UniqAttributesBitSize + UniqFnAttributesBitSize > 16)


        


More information about the llvm-commits mailing list