[Openmp-commits] [openmp] [openmp] Add support for arm64ec to libomp (PR #176151)

David Truby via Openmp-commits openmp-commits at lists.llvm.org
Thu Jan 15 07:15:34 PST 2026


================
@@ -134,7 +135,7 @@ kmp_uint64 __kmp_test_then_and64(volatile kmp_uint64 *p, kmp_uint64 d) {
   return old_value;
 }
 
-#if KMP_ARCH_AARCH64 && KMP_COMPILER_MSVC
+#if (KMP_ARCH_AARCH64 && KMP_COMPILER_MSVC) || KMP_ARCH_ARM64EC
----------------
DavidTruby wrote:

@cjacek Just looking into this, so apologies if my questions are naive; are you even able to pass a non-varargs function here? microtask_t is defined as a varargs function pointer, so can't we just assume the thing being passed is also varargs?

If what's happening is the address is just being taken and then cast to microtask_t, I don't even think compiling as x86_64 would help here. You'd end up passing an address to an arm64ec function to the x86_64 code, without the entry thunk, which would then just explode when you call it wouldn't it?

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


More information about the Openmp-commits mailing list