[OpenMP] Define omp_is_initial_device() variants in omp.h
authorHansang Bae <hansang.bae@intel.com>
Thu, 25 Mar 2021 00:12:00 +0000 (19:12 -0500)
committerHansang Bae <hansang.bae@intel.com>
Tue, 6 Apr 2021 21:58:01 +0000 (16:58 -0500)
commit3da61ddae7fe77f71b89ce20cf6b5febd68d216a
tree151a6bcad75db74e9febd081b3d2aee833a7256c
parent2461804b484e53e448632de0b195ce187e9b0b04
[OpenMP] Define omp_is_initial_device() variants in omp.h

omp_is_initial_device() is marked as a built-in function in the current
compiler, and user code guarded by this call may be optimized away,
resulting in undesired behavior in some cases. This patch provides a
possible fix for such cases by defining the routine as a variant
function and removing it from builtin list.

Differential Revision: https://reviews.llvm.org/D99447
clang/include/clang/Basic/Builtins.def
clang/lib/AST/ExprConstant.cpp
clang/test/OpenMP/is_initial_device.c [deleted file]
openmp/libomptarget/test/api/is_initial_device.c [new file with mode: 0644]
openmp/runtime/src/include/omp.h.var