diff --git a/openmp/libomptarget/DeviceRTL/include/Interface.h b/openmp/libomptarget/DeviceRTL/include/Interface.h --- a/openmp/libomptarget/DeviceRTL/include/Interface.h +++ b/openmp/libomptarget/DeviceRTL/include/Interface.h @@ -280,12 +280,6 @@ /// TODO void __kmpc_kernel_end_parallel(); -/// TODO -void __kmpc_serialized_parallel(IdentTy *Loc, uint32_t); - -/// TODO -void __kmpc_end_serialized_parallel(IdentTy *Loc, uint32_t); - /// TODO void __kmpc_push_proc_bind(IdentTy *Loc, uint32_t TId, int ProcBind); diff --git a/openmp/libomptarget/DeviceRTL/src/Parallelism.cpp b/openmp/libomptarget/DeviceRTL/src/Parallelism.cpp --- a/openmp/libomptarget/DeviceRTL/src/Parallelism.cpp +++ b/openmp/libomptarget/DeviceRTL/src/Parallelism.cpp @@ -85,9 +85,10 @@ uint32_t TId = mapping::getThreadIdInBlock(); // Handle the serialized case first, same for SPMD/non-SPMD. if (OMP_UNLIKELY(!if_expr || icv::Level)) { - __kmpc_serialized_parallel(ident, TId); + state::enterDataEnvironment(); + ++icv::Level; invokeMicrotask(TId, 0, fn, args, nargs); - __kmpc_end_serialized_parallel(ident, TId); + state::exitDataEnvironment(); return; } @@ -192,15 +193,6 @@ ASSERT(!mapping::isSPMDMode()); } -void __kmpc_serialized_parallel(IdentTy *, uint32_t TId) { - state::enterDataEnvironment(); - ++icv::Level; -} - -void __kmpc_end_serialized_parallel(IdentTy *, uint32_t TId) { - state::exitDataEnvironment(); -} - uint16_t __kmpc_parallel_level(IdentTy *, uint32_t) { return omp_get_level(); } int32_t __kmpc_global_thread_num(IdentTy *) { return omp_get_thread_num(); } diff --git a/openmp/libomptarget/deviceRTLs/common/src/parallel.cu b/openmp/libomptarget/deviceRTLs/common/src/parallel.cu --- a/openmp/libomptarget/deviceRTLs/common/src/parallel.cu +++ b/openmp/libomptarget/deviceRTLs/common/src/parallel.cu @@ -177,8 +177,8 @@ // support for parallel that goes sequential //////////////////////////////////////////////////////////////////////////////// -EXTERN void __kmpc_serialized_parallel(kmp_Ident *loc, uint32_t global_tid) { - PRINT0(LD_IO, "call to __kmpc_serialized_parallel\n"); +static void serializedParallel(kmp_Ident *loc, uint32_t global_tid) { + PRINT0(LD_IO, "call to serializedParallel\n"); IncParallelLevel(/*ActiveParallel=*/false, __kmpc_impl_activemask()); @@ -215,9 +215,9 @@ newTaskDescr); } -EXTERN void __kmpc_end_serialized_parallel(kmp_Ident *loc, +static void endSerializedParallel(kmp_Ident *loc, uint32_t global_tid) { - PRINT0(LD_IO, "call to __kmpc_end_serialized_parallel\n"); + PRINT0(LD_IO, "call to endSerializedParallel\n"); DecParallelLevel(/*ActiveParallel=*/false, __kmpc_impl_activemask()); @@ -293,9 +293,9 @@ bool InParallelRegion = (__kmpc_parallel_level() > __kmpc_is_spmd_exec_mode()); if (!if_expr || InParallelRegion) { - __kmpc_serialized_parallel(ident, global_tid); + serializedParallel(ident, global_tid); __kmp_invoke_microtask(global_tid, 0, fn, args, nargs); - __kmpc_end_serialized_parallel(ident, global_tid); + endSerializedParallel(ident, global_tid); return; } diff --git a/openmp/libomptarget/deviceRTLs/interface.h b/openmp/libomptarget/deviceRTLs/interface.h --- a/openmp/libomptarget/deviceRTLs/interface.h +++ b/openmp/libomptarget/deviceRTLs/interface.h @@ -222,8 +222,6 @@ EXTERN int32_t __kmpc_global_thread_num(kmp_Ident *loc); 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); NOINLINE EXTERN uint8_t __kmpc_parallel_level(); // proc bind