LLVM OpenMP 19.0.0git
common.h
Go to the documentation of this file.
1#include <cassert>
2#include <cstdint>
3#include <iostream>
4#include <string>
5
6extern "C" {
7struct ident_t;
8
9using kmp_int32 = int32_t;
10using kmp_int64 = int64_t;
12using kmp_intptr_t = intptr_t;
13
14typedef struct kmp_depend_info {
16 size_t len;
17 union {
18 unsigned char flag;
19 struct {
20#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
21 unsigned all : 1;
22 unsigned unused : 3;
23 unsigned set : 1;
24 unsigned mtx : 1;
25 unsigned out : 1;
26 unsigned in : 1;
27#else
28 unsigned in : 1;
29 unsigned out : 1;
30 unsigned mtx : 1;
31 unsigned set : 1;
32 unsigned unused : 3;
33 unsigned all : 1;
34#endif
36 };
38
39typedef union kmp_cmplrdata {
43
44typedef struct kmp_task {
45 void *shareds;
51
54 size_t, kmp_routine_entry_t);
56 size_t, size_t, kmp_routine_entry_t,
57 kmp_int64);
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);
67}
68
71 if (const char *env = std::getenv("LIBOMP_NUM_HIDDEN_HELPER_THREADS")) {
72 return std::stoi(env);
73 }
75}
void __kmpc_end_taskgroup(ident_t *, kmp_int32)
struct kmp_task kmp_task_t
int32_t kmp_int32
Definition: common.h:9
kmp_task_t * __kmpc_omp_task_alloc(ident_t *, kmp_int32, kmp_int32, size_t, size_t, kmp_routine_entry_t)
struct kmp_depend_info kmp_depend_info_t
kmp_task_t * __kmpc_omp_target_task_alloc(ident_t *, kmp_int32, kmp_int32, size_t, size_t, kmp_routine_entry_t, kmp_int64)
void __kmpc_taskgroup(ident_t *, kmp_int32)
int32_t __kmpc_global_thread_num(void *)
kmp_int32 __kmpc_omp_task(ident_t *, kmp_int32, kmp_task_t *)
kmp_int32 __kmpc_omp_taskwait(ident_t *, kmp_int32)
kmp_int32(*)(kmp_int32, void *) kmp_routine_entry_t
Definition: common.h:11
static kmp_int32 get_num_hidden_helper_threads()
Definition: common.h:69
union kmp_cmplrdata kmp_cmplrdata_t
int64_t kmp_int64
Definition: common.h:10
kmp_int32 __kmpc_omp_task_with_deps(ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *new_task, kmp_int32 ndeps, kmp_depend_info_t *dep_list, kmp_int32 ndeps_noalias, kmp_depend_info_t *noalias_dep_list)
kmp_int32 __kmp_hidden_helper_threads_num
long kmp_intptr_t
Definition: kmp_os.h:204
int32_t kmp_int32
unsigned mtx
Definition: kmp.h:2521
struct kmp_depend_info::@8::@10 flags
size_t len
Definition: kmp.h:2506
unsigned char flag
Definition: common.h:18
kmp_intptr_t base_addr
Definition: kmp.h:2505
unsigned set
Definition: kmp.h:2522
unsigned out
Definition: kmp.h:2520
unsigned in
Definition: kmp.h:2519
unsigned unused
Definition: kmp.h:2523
unsigned all
Definition: kmp.h:2524
Definition: kmp.h:2463
void * shareds
pointer to block of pointers to shared vars
Definition: kmp.h:2464
kmp_int32 part_id
part id for the task
Definition: kmp.h:2467
kmp_cmplrdata_t data2
Definition: kmp.h:2470
kmp_cmplrdata_t data1
Definition: kmp.h:2469
kmp_routine_entry_t routine
pointer to routine to call for executing task
Definition: kmp.h:2466
kmp_routine_entry_t destructors
Definition: kmp.h:2455
kmp_int32 priority
priority specified by user for the task
Definition: kmp.h:2453