[Openmp-commits] [PATCH] D95986: [OpenMP][deviceRTLs] Drop `assert` in common parts of `deviceRTLs`

Shilei Tian via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Wed Feb 3 16:43:33 PST 2021


tianshilei1992 created this revision.
tianshilei1992 added reviewers: jdoerfert, JonChesterfield.
Herald added subscribers: guansong, yaxunl.
tianshilei1992 requested review of this revision.
Herald added subscribers: openmp-commits, sstefan1.
Herald added a project: OpenMP.

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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D95986

Files:
  openmp/libomptarget/deviceRTLs/common/debug.h
  openmp/libomptarget/deviceRTLs/nvptx/src/target_impl.h


Index: openmp/libomptarget/deviceRTLs/nvptx/src/target_impl.h
===================================================================
--- openmp/libomptarget/deviceRTLs/nvptx/src/target_impl.h
+++ openmp/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>
Index: openmp/libomptarget/deviceRTLs/common/debug.h
===================================================================
--- openmp/libomptarget/deviceRTLs/common/debug.h
+++ openmp/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)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95986.321261.patch
Type: text/x-patch
Size: 1207 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20210204/6101a996/attachment-0001.bin>


More information about the Openmp-commits mailing list