[OpenMP][deviceRTLs] Drop `assert` in common parts of `deviceRTLs`
The header `assert.h` needs to be included in order to use `assert` in the code.
When building NVPTX `deviceRTLs` on a CUDA free system, it requires headers from
`gcc-multilib`, which some systems don't have. This patch drops the use of
`assert` in common parts of `deviceRTLs`. In light of
`openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h`, a code block
```
if (!cond)
__builtin_trap();
```
is being used. The builtin will be translated to `call void @llvm.trap()`, and
the corresponding PTX is `trap;`.
Reviewed By: JonChesterfield
Differential Revision: https://reviews.llvm.org/D95986
GitOrigin-RevId: 567b3f8841d0725e07dd816ca4288a309064bd39
diff --git a/libomptarget/deviceRTLs/amdgcn/src/target_impl.h b/libomptarget/deviceRTLs/amdgcn/src/target_impl.h
index 428edfa..fb41332 100644
--- a/libomptarget/deviceRTLs/amdgcn/src/target_impl.h
+++ b/libomptarget/deviceRTLs/amdgcn/src/target_impl.h
@@ -18,7 +18,6 @@
#include "amdgcn_interface.h"
-#include <assert.h>
#include <inttypes.h>
#include <stddef.h>
#include <stdint.h>
@@ -68,11 +67,6 @@
__kmpc_impl_all_lanes = ~(__kmpc_impl_lanemask_t)0
};
-// DEVICE versions of part of libc
-INLINE void __assert_fail(const char *, const char *, unsigned int,
- const char *) {
- __builtin_trap();
-}
EXTERN int printf(const char *, ...);
#endif
diff --git a/libomptarget/deviceRTLs/common/debug.h b/libomptarget/deviceRTLs/common/debug.h
index aeffa2f..3b2895e 100644
--- a/libomptarget/deviceRTLs/common/debug.h
+++ b/libomptarget/deviceRTLs/common/debug.h
@@ -142,13 +142,17 @@
template <typename... Arguments>
NOINLINE static void check(bool cond, const char *fmt,
Arguments... parameters) {
- if (!cond)
+ if (!cond) {
printf(fmt, (int)GetBlockIdInKernel(), (int)GetThreadIdInBlock(),
(int)GetWarpId(), (int)GetLaneId(), parameters...);
- assert(cond);
+ __builtin_trap();
+ }
}
-NOINLINE static void check(bool cond) { assert(cond); }
+NOINLINE static void check(bool cond) {
+ if (!cond)
+ __builtin_trap();
+}
#endif
// set flags that are tested (inclusion properties)
diff --git a/libomptarget/deviceRTLs/nvptx/src/target_impl.h b/libomptarget/deviceRTLs/nvptx/src/target_impl.h
index 33fa9bb..52a7d32 100644
--- a/libomptarget/deviceRTLs/nvptx/src/target_impl.h
+++ b/libomptarget/deviceRTLs/nvptx/src/target_impl.h
@@ -12,7 +12,6 @@
#ifndef _TARGET_IMPL_H_
#define _TARGET_IMPL_H_
-#include <assert.h>
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>