[llvm] [Offload] define MSVC byte-order macros for rtl endianness checks (PR #202540)
Weronika Lewandowska via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 15 02:52:47 PDT 2026
https://github.com/wlemkows updated https://github.com/llvm/llvm-project/pull/202540
>From a2ac4f0c2b3a7f36045c543c79671e958f445c7a Mon Sep 17 00:00:00 2001
From: Weronika Lewandowska <weronika.lewandowska at intel.com>
Date: Tue, 9 Jun 2026 10:36:30 +0200
Subject: [PATCH] [Offload] define MSVC byte-order macros for rtl endianness
checks
---
offload/plugins-nextgen/host/src/rtl.cpp | 31 ++++++++----------------
1 file changed, 10 insertions(+), 21 deletions(-)
diff --git a/offload/plugins-nextgen/host/src/rtl.cpp b/offload/plugins-nextgen/host/src/rtl.cpp
index d977a3e0a9793..7c676bd82c801 100644
--- a/offload/plugins-nextgen/host/src/rtl.cpp
+++ b/offload/plugins-nextgen/host/src/rtl.cpp
@@ -30,20 +30,10 @@
#include "llvm/Frontend/OpenMP/OMPDeviceConstants.h"
#include "llvm/Frontend/OpenMP/OMPGridValues.h"
#include "llvm/Support/DynamicLibrary.h"
+#include "llvm/Support/Endian.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/raw_ostream.h"
-#if !defined(__BYTE_ORDER__) || !defined(__ORDER_LITTLE_ENDIAN__) || \
- !defined(__ORDER_BIG_ENDIAN__)
-#error "Missing preprocessor definitions for endianness detection."
-#endif
-
-#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
-#define LITTLEENDIAN_CPU
-#elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
-#define BIGENDIAN_CPU
-#endif
-
// The number of devices in this plugin.
#define NUM_DEVICES 4
@@ -59,6 +49,7 @@ struct GenELF64KernelTy;
struct GenELF64DeviceTy;
struct GenELF64PluginTy;
+using llvm::endianness;
using llvm::sys::DynamicLibrary;
using namespace error;
@@ -543,17 +534,15 @@ struct GenELF64PluginTy final : public GenericPluginTy {
#elif defined(__s390x__)
return llvm::Triple::systemz;
#elif defined(__aarch64__)
-#ifdef LITTLEENDIAN_CPU
- return llvm::Triple::aarch64;
-#else
- return llvm::Triple::aarch64_be;
-#endif
+ if constexpr (endianness::native == endianness::little)
+ return llvm::Triple::aarch64;
+ else
+ return llvm::Triple::aarch64_be;
#elif defined(__powerpc64__)
-#ifdef LITTLEENDIAN_CPU
- return llvm::Triple::ppc64le;
-#else
- return llvm::Triple::ppc64;
-#endif
+ if constexpr (endianness::native == endianness::little)
+ return llvm::Triple::ppc64le;
+ else
+ return llvm::Triple::ppc64;
#elif defined(__riscv) && (__riscv_xlen == 64)
return llvm::Triple::riscv64;
#elif defined(__loongarch__) && (__loongarch_grlen == 64)
More information about the llvm-commits
mailing list