diff options
Diffstat (limited to 'openmp')
-rw-r--r-- | openmp/libomptarget/deviceRTLs/common/src/parallel.cu | 12 | ||||
-rw-r--r-- | openmp/libomptarget/deviceRTLs/interface.h | 11 |
2 files changed, 12 insertions, 11 deletions
diff --git a/openmp/libomptarget/deviceRTLs/common/src/parallel.cu b/openmp/libomptarget/deviceRTLs/common/src/parallel.cu index 2656f3e..b12d5cc 100644 --- a/openmp/libomptarget/deviceRTLs/common/src/parallel.cu +++ b/openmp/libomptarget/deviceRTLs/common/src/parallel.cu @@ -239,7 +239,7 @@ EXTERN void __kmpc_end_serialized_parallel(kmp_Ident *loc, currTaskDescr->RestoreLoopData(); } -EXTERN uint8_t __kmpc_parallel_level() { +NOINLINE EXTERN uint8_t __kmpc_parallel_level() { return parallelLevel[GetWarpId()] & (OMP_ACTIVE_PARALLEL_LEVEL - 1); } @@ -282,11 +282,11 @@ EXTERN void __kmpc_push_proc_bind(kmp_Ident *loc, uint32_t tid, int proc_bind) { // parallel interface //////////////////////////////////////////////////////////////////////////////// -EXTERN void __kmpc_parallel_51(kmp_Ident *ident, kmp_int32 global_tid, - kmp_int32 if_expr, kmp_int32 num_threads, - int proc_bind, void *fn, void *wrapper_fn, - void **args, size_t nargs) { - +NOINLINE EXTERN void __kmpc_parallel_51(kmp_Ident *ident, kmp_int32 global_tid, + kmp_int32 if_expr, + kmp_int32 num_threads, int proc_bind, + void *fn, void *wrapper_fn, void **args, + size_t nargs) { // Handle the serialized case first, same for SPMD/non-SPMD except that in // SPMD mode we already incremented the parallel level counter, account for // that. diff --git a/openmp/libomptarget/deviceRTLs/interface.h b/openmp/libomptarget/deviceRTLs/interface.h index ade1bfe..2e80dc3 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 uint8_t __kmpc_parallel_level(); +NOINLINE EXTERN uint8_t __kmpc_parallel_level(); // proc bind EXTERN void __kmpc_push_proc_bind(kmp_Ident *loc, uint32_t global_tid, @@ -441,10 +441,11 @@ EXTERN void __kmpc_get_shared_variables(void ***GlobalArgs); /// \param wrapper_fn The worker wrapper function of fn. /// \param args The pointer array of arguments to fn. /// \param nargs The number of arguments to fn. -EXTERN void __kmpc_parallel_51(ident_t *ident, kmp_int32 global_tid, - kmp_int32 if_expr, kmp_int32 num_threads, - int proc_bind, void *fn, void *wrapper_fn, - void **args, size_t nargs); +NOINLINE EXTERN void __kmpc_parallel_51(ident_t *ident, kmp_int32 global_tid, + kmp_int32 if_expr, + kmp_int32 num_threads, int proc_bind, + void *fn, void *wrapper_fn, void **args, + size_t nargs); // SPMD execution mode interrogation function. EXTERN int8_t __kmpc_is_spmd_exec_mode(); |