[Openmp-commits] [openmp] 4e32d5c - [OpenMP] Disable libomptarget integration on unsupported platforms
Guilherme Valarini via Openmp-commits
openmp-commits at lists.llvm.org
Tue Dec 20 11:42:21 PST 2022
Author: Guilherme Valarini
Date: 2022-12-20T16:41:43-03:00
New Revision: 4e32d5cedf19b639ff0cc7eea924dbe26b001de5
URL: https://github.com/llvm/llvm-project/commit/4e32d5cedf19b639ff0cc7eea924dbe26b001de5
DIFF: https://github.com/llvm/llvm-project/commit/4e32d5cedf19b639ff0cc7eea924dbe26b001de5.diff
LOG: [OpenMP] Disable libomptarget integration on unsupported platforms
Reviewed By: jhuber6
Differential Revision: https://reviews.llvm.org/D140419
Added:
Modified:
openmp/runtime/src/kmp_config.h.cmake
openmp/runtime/src/kmp_tasking.cpp
Removed:
################################################################################
diff --git a/openmp/runtime/src/kmp_config.h.cmake b/openmp/runtime/src/kmp_config.h.cmake
index 40d20115c9ec..91bb8a8312e0 100644
--- a/openmp/runtime/src/kmp_config.h.cmake
+++ b/openmp/runtime/src/kmp_config.h.cmake
@@ -94,6 +94,8 @@
#define KMP_HAVE_POSIX_MEMALIGN LIBOMP_HAVE_POSIX_MEMALIGN
#cmakedefine01 LIBOMP_HAVE__ALIGNED_MALLOC
#define KMP_HAVE__ALIGNED_MALLOC LIBOMP_HAVE__ALIGNED_MALLOC
+#cmakedefine01 OPENMP_ENABLE_LIBOMPTARGET
+#define ENABLE_LIBOMPTARGET OPENMP_ENABLE_LIBOMPTARGET
// Configured cache line based on architecture
#if KMP_ARCH_PPC64
diff --git a/openmp/runtime/src/kmp_tasking.cpp b/openmp/runtime/src/kmp_tasking.cpp
index 9fc02ea3b922..e8c565c6ae91 100644
--- a/openmp/runtime/src/kmp_tasking.cpp
+++ b/openmp/runtime/src/kmp_tasking.cpp
@@ -21,8 +21,10 @@
#include "ompt-specific.h"
#endif
+#if ENABLE_LIBOMPTARGET
// Declaration of synchronization function from libomptarget.
extern "C" void __tgt_target_nowait_query(void **) KMP_WEAK_ATTRIBUTE_INTERNAL;
+#endif
/* forward declaration */
static void __kmp_enable_tasking(kmp_task_team_t *task_team,
@@ -1798,12 +1800,15 @@ static void __kmp_invoke_task(kmp_int32 gtid, kmp_task_t *task,
KMP_FSYNC_ACQUIRED(taskdata); // acquired self (new task)
#endif
+#if ENABLE_LIBOMPTARGET
if (taskdata->td_target_data.async_handle != NULL) {
// 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);
- } else if (task->routine != NULL) {
+ } else
+#endif
+ if (task->routine != NULL) {
#ifdef KMP_GOMP_COMPAT
if (taskdata->td_flags.native) {
((void (*)(void *))(*(task->routine)))(task->shareds);
More information about the Openmp-commits
mailing list