[Openmp-commits] [openmp] 48c8e16 - Revert "[Libomptarget] Check errors when synchronizing the async queue"

Joseph Huber via Openmp-commits openmp-commits at lists.llvm.org
Thu Feb 16 12:56:28 PST 2023


Author: Joseph Huber
Date: 2023-02-16T14:56:08-06:00
New Revision: 48c8e16020483b9a2699b7bacda99e8fd0a6d051

URL: https://github.com/llvm/llvm-project/commit/48c8e16020483b9a2699b7bacda99e8fd0a6d051
DIFF: https://github.com/llvm/llvm-project/commit/48c8e16020483b9a2699b7bacda99e8fd0a6d051.diff

LOG: Revert "[Libomptarget] Check errors when synchronizing the async queue"

This reverts commit 861709107b43d40ad366e0efd225cb804be3b44d.

Reverting this to reland as it will make it easier to backport.

Added: 
    

Modified: 
    openmp/libomptarget/include/omptarget.h
    openmp/libomptarget/src/interface.cpp
    openmp/libomptarget/src/omptarget.cpp
    openmp/libomptarget/src/private.h

Removed: 
    


################################################################################
diff  --git a/openmp/libomptarget/include/omptarget.h b/openmp/libomptarget/include/omptarget.h
index dd577e4051e21..9df9e2298236c 100644
--- a/openmp/libomptarget/include/omptarget.h
+++ b/openmp/libomptarget/include/omptarget.h
@@ -17,7 +17,6 @@
 #include <cstdint>
 #include <deque>
 #include <functional>
-#include <optional>
 #include <stddef.h>
 #include <stdint.h>
 #include <type_traits>
@@ -248,8 +247,8 @@ class AsyncInfoTy {
   /// functions will be executed once and unregistered afterwards.
   ///
   /// \returns true if there is no pending asynchronous operations, false
-  /// otherwise. We return a null value in the case of an error from the plugin.
-  std::optional<bool> isDone();
+  /// otherwise.
+  bool isDone();
 
   /// Add a new post-processing function to be executed after synchronization.
   ///

diff  --git a/openmp/libomptarget/src/interface.cpp b/openmp/libomptarget/src/interface.cpp
index 79d465cbad58c..beea0c26210bc 100644
--- a/openmp/libomptarget/src/interface.cpp
+++ b/openmp/libomptarget/src/interface.cpp
@@ -412,12 +412,9 @@ EXTERN void __tgt_target_nowait_query(void **AsyncHandle) {
   if (QueryCounter.isAboveThreshold())
     AsyncInfo->SyncType = AsyncInfoTy::SyncTy::BLOCKING;
 
-  auto DoneOrErr = AsyncInfo->isDone();
-  if (!DoneOrErr)
-    FATAL_MESSAGE0(1, "Error while synchronizing the async queue\n");
   // If there are device operations still pending, return immediately without
   // deallocating the handle and increase the current thread query count.
-  if (!*DoneOrErr) {
+  if (!AsyncInfo->isDone()) {
     QueryCounter.increment();
     return;
   }

diff  --git a/openmp/libomptarget/src/omptarget.cpp b/openmp/libomptarget/src/omptarget.cpp
index 8b32324532907..b0d10dfb40505 100644
--- a/openmp/libomptarget/src/omptarget.cpp
+++ b/openmp/libomptarget/src/omptarget.cpp
@@ -51,10 +51,8 @@ void *&AsyncInfoTy::getVoidPtrLocation() {
   return BufferLocations.back();
 }
 
-std::optional<bool> AsyncInfoTy::isDone() {
-  if (int Result = synchronize())
-    return std::nullopt;
-
+bool AsyncInfoTy::isDone() {
+  synchronize();
   // The async info operations are completed when the internal queue is empty.
   return isQueueEmpty();
 }

diff  --git a/openmp/libomptarget/src/private.h b/openmp/libomptarget/src/private.h
index 7d3f8b94c5d2e..9f156192e1036 100644
--- a/openmp/libomptarget/src/private.h
+++ b/openmp/libomptarget/src/private.h
@@ -250,12 +250,9 @@ class TaskAsyncInfoWrapperTy {
     if (AsyncInfo == &LocalAsyncInfo)
       return;
 
-    auto DoneOrErr = AsyncInfo->isDone();
-    if (!DoneOrErr)
-      FATAL_MESSAGE0(1, "Error while synchronizing the async queue\n");
     // If the are device operations still pending, return immediately without
     // deallocating the handle.
-    if (!*DoneOrErr)
+    if (!AsyncInfo->isDone())
       return;
 
     // Delete the handle and unset it from the OpenMP task data.


        


More information about the Openmp-commits mailing list