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 omp_set_dynamic ompc_set_dynamic
36 #define omp_set_nested ompc_set_nested
37 #define omp_set_affinity_format ompc_set_affinity_format
38 #define omp_get_affinity_format ompc_get_affinity_format
39 #define omp_display_affinity ompc_display_affinity
40 #define omp_capture_affinity ompc_capture_affinity
41 #define kmp_set_stacksize kmpc_set_stacksize
42 #define kmp_set_stacksize_s kmpc_set_stacksize_s
43 #define kmp_set_blocktime kmpc_set_blocktime
44 #define kmp_set_library kmpc_set_library
45 #define kmp_set_defaults kmpc_set_defaults
46 #define kmp_set_disp_num_buffers kmpc_set_disp_num_buffers
47 #define kmp_malloc kmpc_malloc
48 #define kmp_aligned_malloc kmpc_aligned_malloc
49 #define kmp_calloc kmpc_calloc
50 #define kmp_realloc kmpc_realloc
51 #define kmp_free kmpc_free
54 static double frequency = 0.0;
58 static size_t __kmps_init() {
59 static int initialized = 0;
60 static size_t dummy = 0;
72 dummy = __kmp_version_copyright - __kmp_version_build_time;
76 BOOL status = QueryPerformanceFrequency(&freq);
78 frequency = double(freq.QuadPart);
87 #define i __kmps_init();
90 void omp_set_num_threads(omp_int_t num_threads) { i; }
91 void omp_set_dynamic(omp_int_t dynamic) {
93 __kmps_set_dynamic(dynamic);
95 void omp_set_nested(omp_int_t nested) {
97 __kmps_set_nested(nested);
99 void omp_set_max_active_levels(omp_int_t max_active_levels) { i; }
100 void omp_set_schedule(omp_sched_t kind, omp_int_t modifier) {
102 __kmps_set_schedule((kmp_sched_t)kind, modifier);
104 int omp_get_ancestor_thread_num(omp_int_t level) {
106 return (level) ? (-1) : (0);
108 int omp_get_team_size(omp_int_t level) {
110 return (level) ? (-1) : (1);
112 int kmpc_set_affinity_mask_proc(
int proc,
void **mask) {
116 int kmpc_unset_affinity_mask_proc(
int proc,
void **mask) {
120 int kmpc_get_affinity_mask_proc(
int proc,
void **mask) {
126 void kmp_set_stacksize(omp_int_t arg) {
128 __kmps_set_stacksize((
size_t)arg);
130 void kmp_set_stacksize_s(
size_t arg) {
132 __kmps_set_stacksize(arg);
134 void kmp_set_blocktime(omp_int_t arg) {
136 __kmps_set_blocktime(arg);
138 void kmp_set_library(omp_int_t arg) {
140 __kmps_set_library(arg);
142 void kmp_set_defaults(
char const *str) { i; }
143 void kmp_set_disp_num_buffers(omp_int_t arg) { i; }
146 void *kmp_malloc(
size_t size) {
154 res = _aligned_malloc(size, 1);
160 void *kmp_aligned_malloc(
size_t sz,
size_t a) {
165 res = _aligned_malloc(sz, a);
167 if ((err = posix_memalign(&res, a, sz))) {
174 void *kmp_calloc(
size_t nelem,
size_t elsize) {
178 res = _aligned_recalloc(NULL, nelem, elsize, 1);
180 res = calloc(nelem, elsize);
184 void *kmp_realloc(
void *ptr,
size_t size) {
188 res = _aligned_realloc(ptr, size, 1);
190 res = realloc(ptr, size);
194 void kmp_free(
void *ptr) {
203 static int __kmps_blocktime = INT_MAX;
205 void __kmps_set_blocktime(
int arg) {
207 __kmps_blocktime = arg;
210 int __kmps_get_blocktime(
void) {
212 return __kmps_blocktime;
215 static int __kmps_dynamic = 0;
217 void __kmps_set_dynamic(
int arg) {
219 __kmps_dynamic = arg;
222 int __kmps_get_dynamic(
void) {
224 return __kmps_dynamic;
227 static int __kmps_library = 1000;
229 void __kmps_set_library(
int arg) {
231 __kmps_library = arg;
234 int __kmps_get_library(
void) {
236 return __kmps_library;
239 static int __kmps_nested = 0;
241 void __kmps_set_nested(
int arg) {
246 int __kmps_get_nested(
void) {
248 return __kmps_nested;
251 static size_t __kmps_stacksize = KMP_DEFAULT_STKSIZE;
253 void __kmps_set_stacksize(
size_t arg) {
255 __kmps_stacksize = arg;
258 size_t __kmps_get_stacksize(
void) {
260 return __kmps_stacksize;
263 static kmp_sched_t __kmps_sched_kind = kmp_sched_default;
264 static int __kmps_sched_modifier = 0;
266 void __kmps_set_schedule(kmp_sched_t kind,
int modifier) {
268 __kmps_sched_kind = kind;
269 __kmps_sched_modifier = modifier;
272 void __kmps_get_schedule(kmp_sched_t *kind,
int *modifier) {
274 *kind = __kmps_sched_kind;
275 *modifier = __kmps_sched_modifier;
278 kmp_proc_bind_t __kmps_get_proc_bind(
void) {
280 return proc_bind_false;
283 double __kmps_get_wtime(
void) {
288 if (frequency > 0.0) {
290 BOOL status = QueryPerformanceCounter(&now);
292 wtime = double(now.QuadPart) / frequency;
299 rc = gettimeofday(&tval, NULL);
301 wtime = (double)(tval.tv_sec) + 1.0E-06 * (double)(tval.tv_usec);
309 double __kmps_get_wtick(
void) {
319 rc = GetSystemTimeAdjustment(&adjustment, &increment, &disabled);
321 wtick = 1.0E-07 * (double)(disabled ? increment : adjustment);
336 omp_allocator_handle_t
const omp_null_allocator = 0;
337 omp_allocator_handle_t
const omp_default_mem_alloc =
338 (omp_allocator_handle_t
const)1;
339 omp_allocator_handle_t
const omp_large_cap_mem_alloc =
340 (omp_allocator_handle_t
const)2;
341 omp_allocator_handle_t
const omp_const_mem_alloc =
342 (omp_allocator_handle_t
const)3;
343 omp_allocator_handle_t
const omp_high_bw_mem_alloc =
344 (omp_allocator_handle_t
const)4;
345 omp_allocator_handle_t
const omp_low_lat_mem_alloc =
346 (omp_allocator_handle_t
const)5;
347 omp_allocator_handle_t
const omp_cgroup_mem_alloc =
348 (omp_allocator_handle_t
const)6;
349 omp_allocator_handle_t
const omp_pteam_mem_alloc =
350 (omp_allocator_handle_t
const)7;
351 omp_allocator_handle_t
const omp_thread_mem_alloc =
352 (omp_allocator_handle_t
const)8;
354 omp_allocator_handle_t
const llvm_omp_target_host_mem_alloc =
355 (omp_allocator_handle_t
const)100;
356 omp_allocator_handle_t
const llvm_omp_target_shared_mem_alloc =
357 (omp_allocator_handle_t
const)101;
358 omp_allocator_handle_t
const llvm_omp_target_device_mem_alloc =
359 (omp_allocator_handle_t
const)102;
361 omp_memspace_handle_t
const omp_default_mem_space =
362 (omp_memspace_handle_t
const)0;
363 omp_memspace_handle_t
const omp_large_cap_mem_space =
364 (omp_memspace_handle_t
const)1;
365 omp_memspace_handle_t
const omp_const_mem_space =
366 (omp_memspace_handle_t
const)2;
367 omp_memspace_handle_t
const omp_high_bw_mem_space =
368 (omp_memspace_handle_t
const)3;
369 omp_memspace_handle_t
const omp_low_lat_mem_space =
370 (omp_memspace_handle_t
const)4;
372 omp_memspace_handle_t
const llvm_omp_target_host_mem_space =
373 (omp_memspace_handle_t
const)100;
374 omp_memspace_handle_t
const llvm_omp_target_shared_mem_space =
375 (omp_memspace_handle_t
const)101;
376 omp_memspace_handle_t
const llvm_omp_target_device_mem_space =
377 (omp_memspace_handle_t
const)102;
380 void *omp_alloc(
size_t size, omp_allocator_handle_t allocator) {
387 res = _aligned_malloc(size, 1);
394 void *omp_aligned_alloc(
size_t a,
size_t size, omp_allocator_handle_t al) {
399 res = _aligned_malloc(size, a);
401 if (err = posix_memalign(&res, a, size)) {
409 void *omp_calloc(
size_t nmemb,
size_t size, omp_allocator_handle_t al) {
413 res = _aligned_recalloc(NULL, nmemb, size, 1);
415 res = calloc(nmemb, size);
420 void *omp_aligned_calloc(
size_t a,
size_t nmemb,
size_t size,
421 omp_allocator_handle_t al) {
426 res = _aligned_recalloc(NULL, nmemb, size, a);
428 if (err = posix_memalign(&res, a, nmemb * size)) {
432 memset(res, 0x00, size);
437 void *omp_realloc(
void *ptr,
size_t size, omp_allocator_handle_t al,
438 omp_allocator_handle_t free_al) {
442 res = _aligned_realloc(ptr, size, 1);
444 res = realloc(ptr, size);
449 void omp_free(
void *ptr, omp_allocator_handle_t allocator) {
459 void omp_set_affinity_format(
char const *format) { i; }
460 size_t omp_get_affinity_format(
char *buffer,
size_t size) {
464 void omp_display_affinity(
char const *format) { i; }
465 size_t omp_capture_affinity(
char *buffer,
size_t buf_size,
char const *format) {