diff --git a/openmp/libomptarget/deviceRTLs/common/src/support.cu b/openmp/libomptarget/deviceRTLs/common/src/support.cu --- a/openmp/libomptarget/deviceRTLs/common/src/support.cu +++ b/openmp/libomptarget/deviceRTLs/common/src/support.cu @@ -226,4 +226,14 @@ } } +namespace _OMP { +/// Helper to keep code alive without introducing a performance penalty. +__attribute__((used, weak, optnone)) void keepAlive() { + __kmpc_get_hardware_thread_id_in_block(); + __kmpc_get_hardware_num_threads_in_block(); + __kmpc_barrier_simple_spmd(nullptr, 0); + __kmpc_barrier_simple_generic(nullptr, 0); +} +} // namespace _OMP + #pragma omp end declare target