9 using kmp_int32
= int32_t;
10 using kmp_int64
= int64_t;
11 using kmp_routine_entry_t
= kmp_int32 (*)(kmp_int32
, void *);
12 using kmp_intptr_t
= intptr_t;
14 typedef struct kmp_depend_info
{
15 kmp_intptr_t base_addr
;
20 #if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
39 typedef union kmp_cmplrdata
{
41 kmp_routine_entry_t destructors
;
44 typedef struct kmp_task
{
46 kmp_routine_entry_t routine
;
48 kmp_cmplrdata_t data1
;
49 kmp_cmplrdata_t data2
;
52 int32_t __kmpc_global_thread_num(void *);
53 kmp_task_t
*__kmpc_omp_task_alloc(ident_t
*, kmp_int32
, kmp_int32
, size_t,
54 size_t, kmp_routine_entry_t
);
55 kmp_task_t
*__kmpc_omp_target_task_alloc(ident_t
*, kmp_int32
, kmp_int32
,
56 size_t, size_t, kmp_routine_entry_t
,
58 kmp_int32
__kmpc_omp_taskwait(ident_t
*, kmp_int32
);
59 kmp_int32
__kmpc_omp_task(ident_t
*, kmp_int32
, kmp_task_t
*);
60 kmp_int32
__kmpc_omp_task_with_deps(ident_t
*loc_ref
, kmp_int32 gtid
,
61 kmp_task_t
*new_task
, kmp_int32 ndeps
,
62 kmp_depend_info_t
*dep_list
,
63 kmp_int32 ndeps_noalias
,
64 kmp_depend_info_t
*noalias_dep_list
);
65 void __kmpc_taskgroup(ident_t
*, kmp_int32
);
66 void __kmpc_end_taskgroup(ident_t
*, kmp_int32
);
69 static kmp_int32
get_num_hidden_helper_threads() {
70 static kmp_int32 __kmp_hidden_helper_threads_num
= 8;
71 if (const char *env
= std::getenv("LIBOMP_NUM_HIDDEN_HELPER_THREADS")) {
72 return std::stoi(env
);
74 return __kmp_hidden_helper_threads_num
;