29#define omp_set_max_active_levels ompc_set_max_active_levels
30#define omp_set_schedule ompc_set_schedule
31#define omp_get_ancestor_thread_num ompc_get_ancestor_thread_num
32#define omp_get_team_size ompc_get_team_size
34#define omp_set_num_threads ompc_set_num_threads
35#define kmp_set_num_threads_8 kmpc_set_num_threads_8
36#define omp_set_dynamic ompc_set_dynamic
37#define omp_set_nested ompc_set_nested
38#define omp_set_affinity_format ompc_set_affinity_format
39#define omp_get_affinity_format ompc_get_affinity_format
40#define omp_display_affinity ompc_display_affinity
41#define omp_capture_affinity ompc_capture_affinity
42#define kmp_set_stacksize kmpc_set_stacksize
43#define kmp_set_stacksize_s kmpc_set_stacksize_s
44#define kmp_set_blocktime kmpc_set_blocktime
45#define kmp_set_library kmpc_set_library
46#define kmp_set_defaults kmpc_set_defaults
47#define kmp_set_disp_num_buffers kmpc_set_disp_num_buffers
48#define kmp_malloc kmpc_malloc
49#define kmp_aligned_malloc kmpc_aligned_malloc
50#define kmp_calloc kmpc_calloc
51#define kmp_realloc kmpc_realloc
52#define kmp_free kmpc_free
55static double frequency = 0.0;
59static size_t __kmps_init() {
60 static int initialized = 0;
61 static size_t dummy = 0;
73 dummy = __kmp_version_copyright - __kmp_version_build_time;
77 BOOL status = QueryPerformanceFrequency(&freq);
79 frequency = double(freq.QuadPart);
88#define i __kmps_init();
91void omp_set_num_threads(omp_int_t num_threads) { i; }
92void kmp_set_num_threads_8(int64_t num_threads) { i; }
93void omp_set_dynamic(omp_int_t dynamic) {
95 __kmps_set_dynamic(dynamic);
97void omp_set_nested(omp_int_t nested) {
99 __kmps_set_nested(nested);
101void omp_set_max_active_levels(omp_int_t max_active_levels) { i; }
102void omp_set_schedule(omp_sched_t kind, omp_int_t modifier) {
104 __kmps_set_schedule((kmp_sched_t)kind, modifier);
106int omp_get_ancestor_thread_num(omp_int_t level) {
108 return (level) ? (-1) : (0);
110int omp_get_team_size(omp_int_t level) {
112 return (level) ? (-1) : (1);
114int kmpc_set_affinity_mask_proc(
int proc,
void **mask) {
118int kmpc_unset_affinity_mask_proc(
int proc,
void **mask) {
122int kmpc_get_affinity_mask_proc(
int proc,
void **mask) {
128void kmp_set_stacksize(omp_int_t arg) {
130 __kmps_set_stacksize((
size_t)arg);
132void kmp_set_stacksize_s(
size_t arg) {
134 __kmps_set_stacksize(arg);
136void kmp_set_blocktime(omp_int_t arg) {
138 __kmps_set_blocktime(arg);
140void kmp_set_library(omp_int_t arg) {
142 __kmps_set_library(arg);
144void kmp_set_defaults(
char const *str) { i; }
145void kmp_set_disp_num_buffers(omp_int_t arg) { i; }
148void *kmp_malloc(
size_t size) {
156 res = _aligned_malloc(size, 1);
162void *kmp_aligned_malloc(
size_t sz,
size_t a) {
166 res = _aligned_malloc(sz, a);
169 if ((err = posix_memalign(&res, a, sz))) {
176void *kmp_calloc(
size_t nelem,
size_t elsize) {
180 res = _aligned_recalloc(NULL, nelem, elsize, 1);
182 res = calloc(nelem, elsize);
186void *kmp_realloc(
void *ptr,
size_t size) {
190 res = _aligned_realloc(ptr, size, 1);
192 res = realloc(ptr, size);
196void kmp_free(
void *ptr) {
205static int __kmps_blocktime = INT_MAX;
207void __kmps_set_blocktime(
int arg) {
209 __kmps_blocktime = arg;
212int __kmps_get_blocktime(
void) {
214 return __kmps_blocktime;
217static int __kmps_dynamic = 0;
219void __kmps_set_dynamic(
int arg) {
221 __kmps_dynamic = arg;
224int __kmps_get_dynamic(
void) {
226 return __kmps_dynamic;
229static int __kmps_library = 1000;
231void __kmps_set_library(
int arg) {
233 __kmps_library = arg;
236int __kmps_get_library(
void) {
238 return __kmps_library;
241static int __kmps_nested = 0;
243void __kmps_set_nested(
int arg) {
248int __kmps_get_nested(
void) {
250 return __kmps_nested;
253static size_t __kmps_stacksize = KMP_DEFAULT_STKSIZE;
255void __kmps_set_stacksize(
size_t arg) {
257 __kmps_stacksize = arg;
260size_t __kmps_get_stacksize(
void) {
262 return __kmps_stacksize;
265static kmp_sched_t __kmps_sched_kind = kmp_sched_default;
266static int __kmps_sched_modifier = 0;
268void __kmps_set_schedule(kmp_sched_t kind,
int modifier) {
270 __kmps_sched_kind = kind;
271 __kmps_sched_modifier = modifier;
274void __kmps_get_schedule(kmp_sched_t *kind,
int *modifier) {
276 *kind = __kmps_sched_kind;
277 *modifier = __kmps_sched_modifier;
280kmp_proc_bind_t __kmps_get_proc_bind(
void) {
282 return proc_bind_false;
285double __kmps_get_wtime(
void) {
290 if (frequency > 0.0) {
292 BOOL status = QueryPerformanceCounter(&now);
294 wtime = double(now.QuadPart) / frequency;
301 rc = gettimeofday(&tval, NULL);
303 wtime = (double)(tval.tv_sec) + 1.0E-06 * (double)(tval.tv_usec);
311double __kmps_get_wtick(
void) {
321 rc = GetSystemTimeAdjustment(&adjustment, &increment, &disabled);
323 wtick = 1.0E-07 * (double)(disabled ? increment : adjustment);
338omp_allocator_handle_t
const omp_null_allocator = 0;
339omp_allocator_handle_t
const omp_default_mem_alloc =
340 (omp_allocator_handle_t
const)1;
341omp_allocator_handle_t
const omp_large_cap_mem_alloc =
342 (omp_allocator_handle_t
const)2;
343omp_allocator_handle_t
const omp_const_mem_alloc =
344 (omp_allocator_handle_t
const)3;
345omp_allocator_handle_t
const omp_high_bw_mem_alloc =
346 (omp_allocator_handle_t
const)4;
347omp_allocator_handle_t
const omp_low_lat_mem_alloc =
348 (omp_allocator_handle_t
const)5;
349omp_allocator_handle_t
const omp_cgroup_mem_alloc =
350 (omp_allocator_handle_t
const)6;
351omp_allocator_handle_t
const omp_pteam_mem_alloc =
352 (omp_allocator_handle_t
const)7;
353omp_allocator_handle_t
const omp_thread_mem_alloc =
354 (omp_allocator_handle_t
const)8;
355omp_allocator_handle_t
const llvm_omp_target_host_mem_alloc =
356 (omp_allocator_handle_t
const)100;
357omp_allocator_handle_t
const llvm_omp_target_shared_mem_alloc =
358 (omp_allocator_handle_t
const)101;
359omp_allocator_handle_t
const llvm_omp_target_device_mem_alloc =
360 (omp_allocator_handle_t
const)102;
362omp_memspace_handle_t
const omp_null_mem_space = (omp_memspace_handle_t
const)0;
363omp_memspace_handle_t
const omp_default_mem_space =
364 (omp_memspace_handle_t
const)99;
365omp_memspace_handle_t
const omp_large_cap_mem_space =
366 (omp_memspace_handle_t
const)1;
367omp_memspace_handle_t
const omp_const_mem_space =
368 (omp_memspace_handle_t
const)2;
369omp_memspace_handle_t
const omp_high_bw_mem_space =
370 (omp_memspace_handle_t
const)3;
371omp_memspace_handle_t
const omp_low_lat_mem_space =
372 (omp_memspace_handle_t
const)4;
373omp_memspace_handle_t
const omp_cgroup_mem_space =
374 (omp_memspace_handle_t
const)5;
375omp_memspace_handle_t
const llvm_omp_target_host_mem_space =
376 (omp_memspace_handle_t
const)100;
377omp_memspace_handle_t
const llvm_omp_target_shared_mem_space =
378 (omp_memspace_handle_t
const)101;
379omp_memspace_handle_t
const llvm_omp_target_device_mem_space =
380 (omp_memspace_handle_t
const)102;
383void *omp_alloc(
size_t size, omp_allocator_handle_t allocator) {
390 res = _aligned_malloc(size, 1);
397void *omp_aligned_alloc(
size_t a,
size_t size, omp_allocator_handle_t al) {
401 res = _aligned_malloc(size, a);
404 if ((err = posix_memalign(&res, a, size))) {
412void *omp_calloc(
size_t nmemb,
size_t size, omp_allocator_handle_t al) {
416 res = _aligned_recalloc(NULL, nmemb, size, 1);
418 res = calloc(nmemb, size);
423void *omp_aligned_calloc(
size_t a,
size_t nmemb,
size_t size,
424 omp_allocator_handle_t al) {
428 res = _aligned_recalloc(NULL, nmemb, size, a);
431 if ((err = posix_memalign(&res, a, nmemb * size))) {
435 memset(res, 0x00, size);
440void *omp_realloc(
void *ptr,
size_t size, omp_allocator_handle_t al,
441 omp_allocator_handle_t free_al) {
445 res = _aligned_realloc(ptr, size, 1);
447 res = realloc(ptr, size);
452void omp_free(
void *ptr, omp_allocator_handle_t allocator) {
461void *omp_get_dyn_gprivate_ptr(
size_t offset, omp_access_t access_group) {
466void *omp_get_dyn_gprivate_nofb_ptr(
size_t offset, omp_access_t access_group) {
471size_t omp_get_dyn_gprivate_size(omp_access_t access_group) {
476omp_memspace_handle_t omp_get_dyn_gprivate_memspace(omp_access_t access_group) {
478 return omp_null_mem_space;
481size_t omp_get_gprivate_limit(
int device_num, omp_access_t access_group) {
487void omp_set_affinity_format(
char const *format) { i; }
488size_t omp_get_affinity_format(
char *buffer,
size_t size) {
492void omp_display_affinity(
char const *format) { i; }
493size_t omp_capture_affinity(
char *buffer,
size_t buf_size,
char const *format) {