Revert "[OpenMP] Ensure broken assumptions print once, not thousands of times."
authorRon Lieberman <ron.lieberman@amd.com>
Fri, 28 Jan 2022 01:41:10 +0000 (01:41 +0000)
committerRon Lieberman <ron.lieberman@amd.com>
Fri, 28 Jan 2022 01:41:10 +0000 (01:41 +0000)
This reverts commit 27c799ecc9e9e3bfb8232c93fd500f45ca0cb345.

openmp/libomptarget/DeviceRTL/include/Debug.h
openmp/libomptarget/DeviceRTL/include/Synchronization.h
openmp/libomptarget/DeviceRTL/include/Utils.h
openmp/libomptarget/DeviceRTL/src/Synchronization.cpp

index 7c3979f..18c43f3 100644 (file)
@@ -13,7 +13,6 @@
 #define OMPTARGET_DEVICERTL_DEBUG_H
 
 #include "Configuration.h"
-#include "Utils.h"
 
 /// Assertion
 ///
@@ -26,10 +25,9 @@ void __assert_fail(const char *assertion, const char *file, unsigned line,
 
 #define ASSERT(expr)                                                           \
   {                                                                            \
-    if (config::isDebugMode(config::DebugKind::Assertion) && !(expr) &&        \
-        utils::SingletonFlag::testAndSet())                                    \
+    if (config::isDebugMode(config::DebugKind::Assertion) && !(expr))          \
       __assert_fail(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__);           \
-    else if (!config::isDebugMode(config::DebugKind::Assertion))               \
+    else                                                                       \
       __assert_assume(expr);                                                   \
   }
 
index 70d2656..e33f37a 100644 (file)
@@ -74,10 +74,6 @@ uint32_t add(uint32_t *Addr, uint32_t V, int Ordering);
 /// Atomically add \p V to \p *Addr with \p Ordering semantics.
 uint64_t add(uint64_t *Addr, uint64_t V, int Ordering);
 
-/// Atomically write \p V to \p *Addr with \p Ordering semantics and return the
-/// old value of \p *Addr.
-uint32_t exchange(uint32_t *Addr, uint32_t V, int Ordering);
-
 } // namespace atomic
 
 } // namespace _OMP
index 9a0711f..dc4b1cd 100644 (file)
@@ -12,7 +12,6 @@
 #ifndef OMPTARGET_DEVICERTL_UTILS_H
 #define OMPTARGET_DEVICERTL_UTILS_H
 
-#include "Synchronization.h"
 #include "Types.h"
 
 namespace _OMP {
@@ -73,26 +72,6 @@ template <typename Ty1, typename Ty2> inline Ty1 align_down(Ty1 V, Ty2 Align) {
   return V - V % Align;
 }
 
-namespace {
-/// Helper class to perform an action only once.
-///
-/// Using this is probably costly even if it is not executed. It should be
-/// guarded such that release mode execution will not be impacted.
-template <uint32_t ID> struct SingletonFlagImpl {
-
-  /// Each SingletonFlag instantiation with the same ID has an internal flag.
-  /// This function will return true if the flag was not set before, otherwise
-  /// it will return false. In either case the flag is set afterwards.
-  static bool testAndSet() {
-    static uint32_t DoOnceFlag = 0;
-    return 1 != atomic::exchange(&DoOnceFlag, 1, __ATOMIC_ACQ_REL);
-  }
-};
-} // namespace
-
-/// Helper to hide the __COUNTER__ use away.
-#define SingletonFlag SingletonFlagImpl<__COUNTER__>
-
 #define OMP_LIKELY(EXPR) __builtin_expect((bool)(EXPR), true)
 #define OMP_UNLIKELY(EXPR) __builtin_expect((bool)(EXPR), false)
 
index c83ece5..6b4bab0 100644 (file)
@@ -320,10 +320,6 @@ uint64_t atomic::add(uint64_t *Addr, uint64_t V, int Ordering) {
   return impl::atomicAdd(Addr, V, Ordering);
 }
 
-uint32_t atomic::exchange(uint32_t *Addr, uint32_t V, int Ordering) {
-  return impl::atomicExchange(Addr, V, Ordering);
-}
-
 extern "C" {
 void __kmpc_ordered(IdentTy *Loc, int32_t TId) { FunctionTracingRAII(); }