[Openmp-commits] [openmp] 284e54d - Revert "[OpenMP] Handle function calls from `libomp` to `libomptarget` correctly"

Shilei Tian via Openmp-commits openmp-commits at lists.llvm.org
Mon May 1 15:22:58 PDT 2023


Author: Shilei Tian
Date: 2023-05-01T18:22:23-04:00
New Revision: 284e54d74c149e5c936c829f19c4f93a70456fde

URL: https://github.com/llvm/llvm-project/commit/284e54d74c149e5c936c829f19c4f93a70456fde
DIFF: https://github.com/llvm/llvm-project/commit/284e54d74c149e5c936c829f19c4f93a70456fde.diff

LOG: Revert "[OpenMP] Handle function calls from `libomp` to `libomptarget` correctly"

This reverts commit 479e335fc37c06767654141358ea076ac066de11.

The assertion at `kmp_tasking.cpp(29)` is triggered.

Added: 
    

Modified: 
    openmp/runtime/src/kmp.h
    openmp/runtime/src/kmp_runtime.cpp
    openmp/runtime/src/kmp_tasking.cpp

Removed: 
    


################################################################################
diff  --git a/openmp/runtime/src/kmp.h b/openmp/runtime/src/kmp.h
index bd50d58f0fdcb..43e723fa7387b 100644
--- a/openmp/runtime/src/kmp.h
+++ b/openmp/runtime/src/kmp.h
@@ -1100,12 +1100,6 @@ extern void __kmp_init_target_mem();
 
 /* ------------------------------------------------------------------------ */
 
-#if ENABLE_LIBOMPTARGET
-extern void __kmp_init_target_task();
-#endif
-
-/* ------------------------------------------------------------------------ */
-
 #define KMP_UINT64_MAX                                                         \
   (~((kmp_uint64)1 << ((sizeof(kmp_uint64) * (1 << 3)) - 1)))
 

diff  --git a/openmp/runtime/src/kmp_runtime.cpp b/openmp/runtime/src/kmp_runtime.cpp
index a0a72f163e7c5..776160289981b 100644
--- a/openmp/runtime/src/kmp_runtime.cpp
+++ b/openmp/runtime/src/kmp_runtime.cpp
@@ -553,14 +553,6 @@ static void __kmp_fini_allocator() { __kmp_fini_memkind(); }
 
 /* ------------------------------------------------------------------------ */
 
-#if ENABLE_LIBOMPTARGET
-static void __kmp_init_omptarget() {
-  __kmp_init_target_task();
-}
-#endif
-
-/* ------------------------------------------------------------------------ */
-
 #if KMP_DYNAMIC_LIB
 #if KMP_OS_WINDOWS
 
@@ -7049,11 +7041,6 @@ static void __kmp_do_serial_initialize(void) {
 
   __kmp_validate_locks();
 
-#if ENABLE_LIBOMPTARGET
-  /* Initialize functions from libomptarget */
-  __kmp_init_omptarget();
-#endif
-
   /* Initialize internal memory allocator */
   __kmp_init_allocator();
 

diff  --git a/openmp/runtime/src/kmp_tasking.cpp b/openmp/runtime/src/kmp_tasking.cpp
index f441b0e9ef673..71922ed708001 100644
--- a/openmp/runtime/src/kmp_tasking.cpp
+++ b/openmp/runtime/src/kmp_tasking.cpp
@@ -22,12 +22,8 @@
 #endif
 
 #if ENABLE_LIBOMPTARGET
-static void (*tgt_target_nowait_query)(void **);
-
-void __kmp_init_target_task() {
-  *(void **)(&tgt_target_nowait_query) = KMP_DLSYM("__tgt_target_nowait_query");
-  KMP_ASSERT(tgt_target_nowait_query);
-}
+// Declaration of synchronization function from libomptarget.
+extern "C" void __tgt_target_nowait_query(void **) KMP_WEAK_ATTRIBUTE_INTERNAL;
 #endif
 
 /* forward declaration */
@@ -1809,7 +1805,7 @@ static void __kmp_invoke_task(kmp_int32 gtid, kmp_task_t *task,
       // If we have a valid target async handle, that means that we have already
       // executed the task routine once. We must query for the handle completion
       // instead of re-executing the routine.
-      tgt_target_nowait_query(&taskdata->td_target_data.async_handle);
+      __tgt_target_nowait_query(&taskdata->td_target_data.async_handle);
     } else
 #endif
     if (task->routine != NULL) {


        


More information about the Openmp-commits mailing list