Skip to content

Commit b2cb9ad

Browse files
committed
Add LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T
1 parent 581472d commit b2cb9ad

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

llvm/cmake/config-ix.cmake

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -537,18 +537,24 @@ if( LLVM_NATIVE_ARCH STREQUAL "host" )
537537
string(REGEX MATCH "^[^-]*" LLVM_NATIVE_ARCH ${LLVM_HOST_TRIPLE})
538538
endif ()
539539

540+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 8)
541+
540542
if (LLVM_NATIVE_ARCH MATCHES "i[2-6]86")
541543
set(LLVM_NATIVE_ARCH X86)
544+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
542545
elseif (LLVM_NATIVE_ARCH STREQUAL "x86")
543546
set(LLVM_NATIVE_ARCH X86)
547+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
544548
elseif (LLVM_NATIVE_ARCH STREQUAL "amd64")
545549
set(LLVM_NATIVE_ARCH X86)
546550
elseif (LLVM_NATIVE_ARCH STREQUAL "x86_64")
547551
set(LLVM_NATIVE_ARCH X86)
548552
elseif (LLVM_NATIVE_ARCH MATCHES "sparc")
549553
set(LLVM_NATIVE_ARCH Sparc)
554+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
550555
elseif (LLVM_NATIVE_ARCH MATCHES "powerpc")
551556
set(LLVM_NATIVE_ARCH PowerPC)
557+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
552558
elseif (LLVM_NATIVE_ARCH MATCHES "ppc64le")
553559
set(LLVM_NATIVE_ARCH PowerPC)
554560
elseif (LLVM_NATIVE_ARCH MATCHES "aarch64")
@@ -557,29 +563,41 @@ elseif (LLVM_NATIVE_ARCH MATCHES "arm64")
557563
set(LLVM_NATIVE_ARCH AArch64)
558564
elseif (LLVM_NATIVE_ARCH MATCHES "arm")
559565
set(LLVM_NATIVE_ARCH ARM)
566+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
560567
elseif (LLVM_NATIVE_ARCH MATCHES "avr")
561568
set(LLVM_NATIVE_ARCH AVR)
569+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 2)
562570
elseif (LLVM_NATIVE_ARCH MATCHES "mips")
563571
set(LLVM_NATIVE_ARCH Mips)
572+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
564573
elseif (LLVM_NATIVE_ARCH MATCHES "xcore")
565574
set(LLVM_NATIVE_ARCH XCore)
575+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
566576
elseif (LLVM_NATIVE_ARCH MATCHES "msp430")
567577
set(LLVM_NATIVE_ARCH MSP430)
578+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 2)
568579
elseif (LLVM_NATIVE_ARCH MATCHES "hexagon")
569580
set(LLVM_NATIVE_ARCH Hexagon)
581+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
570582
elseif (LLVM_NATIVE_ARCH MATCHES "s390x")
571583
set(LLVM_NATIVE_ARCH SystemZ)
572584
elseif (LLVM_NATIVE_ARCH MATCHES "wasm32")
573585
set(LLVM_NATIVE_ARCH WebAssembly)
586+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
574587
elseif (LLVM_NATIVE_ARCH MATCHES "wasm64")
575588
set(LLVM_NATIVE_ARCH WebAssembly)
576589
elseif (LLVM_NATIVE_ARCH MATCHES "riscv32")
577590
set(LLVM_NATIVE_ARCH RISCV)
591+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
578592
elseif (LLVM_NATIVE_ARCH MATCHES "riscv64")
579593
set(LLVM_NATIVE_ARCH RISCV)
580594
elseif (LLVM_NATIVE_ARCH STREQUAL "m68k")
581595
set(LLVM_NATIVE_ARCH M68k)
582-
elseif (LLVM_NATIVE_ARCH MATCHES "loongarch")
596+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
597+
elseif (LLVM_NATIVE_ARCH MATCHES "loongarch32")
598+
set(LLVM_NATIVE_ARCH LoongArch)
599+
set(LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
600+
elseif (LLVM_NATIVE_ARCH MATCHES "loongarch64")
583601
set(LLVM_NATIVE_ARCH LoongArch)
584602
else ()
585603
message(FATAL_ERROR "Unknown architecture ${LLVM_NATIVE_ARCH}")

llvm/include/llvm/Config/llvm-config.h.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@
3333
/* LLVM architecture name for the native architecture, if available */
3434
#cmakedefine LLVM_NATIVE_ARCH ${LLVM_NATIVE_ARCH}
3535

36+
/* sizeof(uintptr_t) name for the native architecture, if available */
37+
#cmakedefine LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T ${LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T}
38+
3639
/* LLVM name for the native AsmParser init function, if available */
3740
#cmakedefine LLVM_NATIVE_ASMPARSER LLVMInitialize${LLVM_NATIVE_ARCH}AsmParser
3841

llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,8 @@ void RuntimeLibcallEmitter::emitSystemRuntimeLibrarySetCalls(
402402
PredicateSorter.insert(
403403
PredicateWithCC()); // No predicate or CC override first.
404404

405-
constexpr unsigned BitsPerStorageElt = sizeof(uintptr_t) * CHAR_BIT;
405+
constexpr unsigned BitsPerStorageElt =
406+
LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T * CHAR_BIT;
406407

407408
DenseMap<PredicateWithCC, LibcallsWithCC> Pred2Funcs;
408409

@@ -418,7 +419,7 @@ void RuntimeLibcallEmitter::emitSystemRuntimeLibrarySetCalls(
418419
}
419420

420421
size_t BitIdx = LibCallImpl->getEnumVal();
421-
uintptr_t BitmaskVal = uintptr_t(1) << (BitIdx % BitsPerStorageElt);
422+
uint64_t BitmaskVal = uint64_t(1) << (BitIdx % BitsPerStorageElt);
422423
size_t BitsetIdx = BitIdx / BitsPerStorageElt;
423424

424425
auto It = Func2Preds.find(LibCallImpl);

0 commit comments

Comments
 (0)