diff --git a/openmp/libomptarget/deviceRTLs/common/src/libcall.cu b/openmp/libomptarget/deviceRTLs/common/src/libcall.cu index 65816aeb863d..49d6d9f83578 100644 --- a/openmp/libomptarget/deviceRTLs/common/src/libcall.cu +++ b/openmp/libomptarget/deviceRTLs/common/src/libcall.cu @@ -129,7 +129,7 @@ EXTERN int omp_get_max_active_levels(void) { } EXTERN int omp_get_level(void) { - int level = parallelLevel[GetWarpId()] & (OMP_ACTIVE_PARALLEL_LEVEL - 1); + int level = __kmpc_parallel_level(); PRINT(LD_IO, "call omp_get_level() returns %d\n", level); return level; } diff --git a/openmp/libomptarget/deviceRTLs/common/src/parallel.cu b/openmp/libomptarget/deviceRTLs/common/src/parallel.cu index 2fd7b0585ad6..5e318a237af4 100644 --- a/openmp/libomptarget/deviceRTLs/common/src/parallel.cu +++ b/openmp/libomptarget/deviceRTLs/common/src/parallel.cu @@ -238,9 +238,7 @@ EXTERN void __kmpc_end_serialized_parallel(kmp_Ident *loc, currTaskDescr->RestoreLoopData(); } -EXTERN uint16_t __kmpc_parallel_level(kmp_Ident *loc, uint32_t global_tid) { - PRINT0(LD_IO, "call to __kmpc_parallel_level\n"); - +EXTERN uint16_t __kmpc_parallel_level() { return parallelLevel[GetWarpId()] & (OMP_ACTIVE_PARALLEL_LEVEL - 1); } @@ -292,7 +290,7 @@ EXTERN void __kmpc_parallel_51(kmp_Ident *ident, kmp_int32 global_tid, // SPMD mode we already incremented the parallel level counter, account for // that. bool InParallelRegion = - (__kmpc_parallel_level(ident, global_tid) > __kmpc_is_spmd_exec_mode()); + (__kmpc_parallel_level() > __kmpc_is_spmd_exec_mode()); if (!if_expr || InParallelRegion) { __kmpc_serialized_parallel(ident, global_tid); __kmp_invoke_microtask(global_tid, 0, fn, args, nargs); diff --git a/openmp/libomptarget/deviceRTLs/common/src/support.cu b/openmp/libomptarget/deviceRTLs/common/src/support.cu index f9014dfc4284..d78f94c0b1b5 100644 --- a/openmp/libomptarget/deviceRTLs/common/src/support.cu +++ b/openmp/libomptarget/deviceRTLs/common/src/support.cu @@ -89,7 +89,7 @@ int GetOmpThreadId() { return 0; // omp_thread_num int rc; - if ((parallelLevel[GetWarpId()] & (OMP_ACTIVE_PARALLEL_LEVEL - 1)) > 1) { + if (__kmpc_parallel_level() > 1) { rc = 0; } else if (__kmpc_is_spmd_exec_mode()) { rc = tid; diff --git a/openmp/libomptarget/deviceRTLs/interface.h b/openmp/libomptarget/deviceRTLs/interface.h index 513075779972..17e3bdf18be1 100644 --- a/openmp/libomptarget/deviceRTLs/interface.h +++ b/openmp/libomptarget/deviceRTLs/interface.h @@ -222,7 +222,7 @@ EXTERN void __kmpc_push_num_threads(kmp_Ident *loc, int32_t global_tid, int32_t num_threads); EXTERN void __kmpc_serialized_parallel(kmp_Ident *loc, uint32_t global_tid); EXTERN void __kmpc_end_serialized_parallel(kmp_Ident *loc, uint32_t global_tid); -EXTERN uint16_t __kmpc_parallel_level(kmp_Ident *loc, uint32_t global_tid); +EXTERN uint16_t __kmpc_parallel_level(); // proc bind EXTERN void __kmpc_push_proc_bind(kmp_Ident *loc, uint32_t global_tid,