LLVM OpenMP 22.0.0git
kmp_gsupport.cpp File Reference
#include "kmp.h"
#include "kmp_atomic.h"
#include "kmp_utils.h"
#include "kmp_ftn_os.h"

Go to the source code of this file.

Classes

class  kmp_gomp_depends_info_t

Macros

#define MKLOC(loc, routine)
#define KMP_DISPATCH_INIT   __kmp_aux_dispatch_init_8
#define KMP_DISPATCH_FINI_CHUNK   __kmp_aux_dispatch_fini_chunk_8
#define KMP_DISPATCH_NEXT   __kmpc_dispatch_next_8
#define KMP_DISPATCH_INIT_ULL   __kmp_aux_dispatch_init_8u
#define KMP_DISPATCH_FINI_CHUNK_ULL   __kmp_aux_dispatch_fini_chunk_8u
#define KMP_DISPATCH_NEXT_ULL   __kmpc_dispatch_next_8u
#define IF_OMPT_SUPPORT(code)
#define LOOP_START(func, schedule)
#define LOOP_RUNTIME_START(func, schedule)
#define KMP_DOACROSS_FINI(status, gtid)
#define LOOP_NEXT(func, fini_code)
#define LOOP_DOACROSS_START(func, schedule)
#define LOOP_DOACROSS_RUNTIME_START(func, schedule)
#define LOOP_START_ULL(func, schedule)
#define LOOP_RUNTIME_START_ULL(func, schedule)
#define LOOP_NEXT_ULL(func, fini_code)
#define LOOP_DOACROSS_START_ULL(func, schedule)
#define LOOP_DOACROSS_RUNTIME_START_ULL(func, schedule)
#define PARALLEL_LOOP_START(func, schedule, ompt_pre, ompt_post)
#define OMPT_LOOP_PRE()
#define OMPT_LOOP_POST()
#define PARALLEL_LOOP(func, schedule, ompt_pre, ompt_post)

Enumerations

enum  { KMP_GOMP_TASK_UNTIED_FLAG = 1 , KMP_GOMP_TASK_FINAL_FLAG = 2 , KMP_GOMP_TASK_DEPENDS_FLAG = 8 }
enum  { KMP_GOMP_DEPOBJ_IN = 1 , KMP_GOMP_DEPOBJ_OUT = 2 , KMP_GOMP_DEPOBJ_INOUT = 3 , KMP_GOMP_DEPOBJ_MTXINOUTSET = 4 }

Functions

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_BARRIER (void)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_CRITICAL_START (void)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_CRITICAL_END (void)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_CRITICAL_NAME_START (void **pptr)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_CRITICAL_NAME_END (void **pptr)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_ATOMIC_START (void)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_ATOMIC_END (void)
int KMP_EXPAND_NAME KMP_API_NAME_GOMP_SINGLE_START (void)
void *KMP_EXPAND_NAME KMP_API_NAME_GOMP_SINGLE_COPY_START (void)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_SINGLE_COPY_END (void *data)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_ORDERED_START (void)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_ORDERED_END (void)
static void __kmp_GOMP_microtask_wrapper (int *gtid, int *npr, void(*task)(void *), void *data)
static void __kmp_GOMP_parallel_microtask_wrapper (int *gtid, int *npr, void(*task)(void *), void *data, unsigned num_threads, ident_t *loc, enum sched_type schedule, long start, long end, long incr, long chunk_size)
static void __kmp_GOMP_fork_call (ident_t *loc, int gtid, unsigned num_threads, unsigned flags, void(*unwrapped_task)(void *), microtask_t wrapper, int argc,...)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_PARALLEL_START (void(*task)(void *), void *data, unsigned num_threads)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_PARALLEL_END (void)
 LOOP_START (KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_DYNAMIC_START), kmp_sch_dynamic_chunked) LOOP_START(KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START)
kmp_sch_dynamic_chunked LOOP_START (KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_GUIDED_START), kmp_sch_guided_chunked) LOOP_START(KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_NONMONOTONIC_GUIDED_START)
kmp_sch_dynamic_chunked kmp_sch_guided_chunked LOOP_RUNTIME_START (KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_RUNTIME_START), kmp_sch_runtime) LOOP_RUNTIME_START(KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START)
kmp_sch_dynamic_chunked kmp_sch_guided_chunked kmp_sch_runtime LOOP_RUNTIME_START (KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_NONMONOTONIC_RUNTIME_START), kmp_sch_runtime) LOOP_NEXT(KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_NEXT)
template<typename T>
kmp_sch_dynamic_chunked kmp_sch_guided_chunked kmp_sch_runtime void __GOMP_taskloop (void(*func)(void *), void *data, void(*copy_func)(void *, void *), long arg_size, long arg_align, unsigned gomp_flags, unsigned long num_tasks, int priority, T start, T end, T step)
template<typename T, bool need_conversion = (sizeof(long) == 4)>
void __kmp_GOMP_doacross_post (T *count)
template<>
void __kmp_GOMP_doacross_post< long, true > (long *count)
template<>
void __kmp_GOMP_doacross_post< long, false > (long *count)
template<typename T>
void __kmp_GOMP_doacross_wait (T first, va_list args)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TASKLOOP (void(*func)(void *), void *data, void(*copy_func)(void *, void *), long arg_size, long arg_align, unsigned gomp_flags, unsigned long num_tasks, int priority, long start, long end, long step)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TASKLOOP_ULL (void(*func)(void *), void *data, void(*copy_func)(void *, void *), long arg_size, long arg_align, unsigned gomp_flags, unsigned long num_tasks, int priority, unsigned long long start, unsigned long long end, unsigned long long step)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_DOACROSS_POST (long *count)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_DOACROSS_WAIT (long first,...)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_DOACROSS_ULL_POST (unsigned long long *count)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_DOACROSS_ULL_WAIT (unsigned long long first,...)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TEAMS_REG (void(*fn)(void *), void *data, unsigned num_teams, unsigned thread_limit, unsigned flags)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TASKWAIT_DEPEND (void **depend)
static void __kmp_GOMP_taskgroup_reduction_register (uintptr_t *data, kmp_taskgroup_t *tg, int nthreads, uintptr_t *allocated=nullptr)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TASKGROUP_REDUCTION_REGISTER (uintptr_t *data)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TASKGROUP_REDUCTION_UNREGISTER (uintptr_t *data)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TASK_REDUCTION_REMAP (size_t cnt, size_t cntorig, void **ptrs)
static void __kmp_GOMP_init_reductions (int gtid, uintptr_t *data, int is_ws)
static unsigned __kmp_GOMP_par_reductions_microtask_wrapper (int *gtid, int *npr, void(*task)(void *), void *data)
unsigned KMP_EXPAND_NAME KMP_API_NAME_GOMP_PARALLEL_REDUCTIONS (void(*task)(void *), void *data, unsigned num_threads, unsigned int flags)
bool KMP_EXPAND_NAME KMP_API_NAME_GOMP_LOOP_START (long start, long end, long incr, long sched, long chunk_size, long *istart, long *iend, uintptr_t *reductions, void **mem)
bool KMP_EXPAND_NAME KMP_API_NAME_GOMP_LOOP_ULL_START (bool up, unsigned long long start, unsigned long long end, unsigned long long incr, long sched, unsigned long long chunk_size, unsigned long long *istart, unsigned long long *iend, uintptr_t *reductions, void **mem)
bool KMP_EXPAND_NAME KMP_API_NAME_GOMP_LOOP_DOACROSS_START (unsigned ncounts, long *counts, long sched, long chunk_size, long *istart, long *iend, uintptr_t *reductions, void **mem)
bool KMP_EXPAND_NAME KMP_API_NAME_GOMP_LOOP_ULL_DOACROSS_START (unsigned ncounts, unsigned long long *counts, long sched, unsigned long long chunk_size, unsigned long long *istart, unsigned long long *iend, uintptr_t *reductions, void **mem)
bool KMP_EXPAND_NAME KMP_API_NAME_GOMP_LOOP_ORDERED_START (long start, long end, long incr, long sched, long chunk_size, long *istart, long *iend, uintptr_t *reductions, void **mem)
bool KMP_EXPAND_NAME KMP_API_NAME_GOMP_LOOP_ULL_ORDERED_START (bool up, unsigned long long start, unsigned long long end, unsigned long long incr, long sched, unsigned long long chunk_size, unsigned long long *istart, unsigned long long *iend, uintptr_t *reductions, void **mem)
unsigned KMP_EXPAND_NAME KMP_API_NAME_GOMP_SECTIONS2_START (unsigned count, uintptr_t *reductions, void **mem)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER (bool cancelled)
void *KMP_EXPAND_NAME KMP_API_NAME_GOMP_ALLOC (size_t alignment, size_t size, uintptr_t allocator)
void KMP_EXPAND_NAME KMP_API_NAME_GOMP_FREE (void *ptr, uintptr_t allocator)

Variables

kmp_critical_name__kmp_unnamed_critical_addr

Macro Definition Documentation

◆ IF_OMPT_SUPPORT

#define IF_OMPT_SUPPORT ( code)

Definition at line 598 of file kmp_gsupport.cpp.

◆ KMP_DISPATCH_FINI_CHUNK

#define KMP_DISPATCH_FINI_CHUNK   __kmp_aux_dispatch_fini_chunk_8

Definition at line 367 of file kmp_gsupport.cpp.

◆ KMP_DISPATCH_FINI_CHUNK_ULL

#define KMP_DISPATCH_FINI_CHUNK_ULL   __kmp_aux_dispatch_fini_chunk_8u

Definition at line 372 of file kmp_gsupport.cpp.

◆ KMP_DISPATCH_INIT

#define KMP_DISPATCH_INIT   __kmp_aux_dispatch_init_8

Definition at line 366 of file kmp_gsupport.cpp.

Referenced by __kmp_GOMP_parallel_microtask_wrapper().

◆ KMP_DISPATCH_INIT_ULL

#define KMP_DISPATCH_INIT_ULL   __kmp_aux_dispatch_init_8u

Definition at line 371 of file kmp_gsupport.cpp.

◆ KMP_DISPATCH_NEXT

#define KMP_DISPATCH_NEXT   __kmpc_dispatch_next_8

Definition at line 368 of file kmp_gsupport.cpp.

◆ KMP_DISPATCH_NEXT_ULL

#define KMP_DISPATCH_NEXT_ULL   __kmpc_dispatch_next_8u

Definition at line 373 of file kmp_gsupport.cpp.

◆ KMP_DOACROSS_FINI

#define KMP_DOACROSS_FINI ( status,
gtid )
Value:
if (!status && __kmp_threads[gtid]->th.th_dispatch->th_doacross_flags) { \
__kmpc_doacross_fini(NULL, gtid); \
}
kmp_info_t ** __kmp_threads
static volatile kmp_i18n_cat_status_t status
Definition kmp_i18n.cpp:48

Definition at line 682 of file kmp_gsupport.cpp.

◆ LOOP_DOACROSS_RUNTIME_START

#define LOOP_DOACROSS_RUNTIME_START ( func,
schedule )

◆ LOOP_DOACROSS_RUNTIME_START_ULL

#define LOOP_DOACROSS_RUNTIME_START_ULL ( func,
schedule )

◆ LOOP_DOACROSS_START

#define LOOP_DOACROSS_START ( func,
schedule )

◆ LOOP_DOACROSS_START_ULL

#define LOOP_DOACROSS_START_ULL ( func,
schedule )

◆ LOOP_NEXT

#define LOOP_NEXT ( func,
fini_code )
Value:
int func(long *p_lb, long *p_ub) { \
int status; \
long stride; \
int gtid = __kmp_get_gtid(); \
MKLOC(loc, KMP_STR(func)); \
KA_TRACE(20, (KMP_STR(func) ": T#%d\n", gtid)); \
\
IF_OMPT_SUPPORT(OMPT_STORE_RETURN_ADDRESS(gtid);) \
fini_code status = KMP_DISPATCH_NEXT(&loc, gtid, NULL, (kmp_int *)p_lb, \
(kmp_int *)p_ub, (kmp_int *)&stride); \
if (status) { \
*p_ub += (stride > 0) ? 1 : -1; \
} \
KMP_DOACROSS_FINI(status, gtid) \
\
KA_TRACE( \
20, \
(KMP_STR(func) " exit: T#%d, *p_lb 0x%lx, *p_ub 0x%lx, stride 0x%lx, " \
"returning %d\n", \
gtid, *p_lb, *p_ub, stride, status)); \
return status; \
}
#define __kmp_get_gtid()
Definition kmp.h:3600
#define KMP_DISPATCH_NEXT
#define KMP_STR(x)
Definition kmp_os.h:412
kmp_int32 kmp_int
Definition kmp_os.h:214
void func(int *num_exec)
static id loc

Definition at line 687 of file kmp_gsupport.cpp.

Referenced by LOOP_RUNTIME_START().

◆ LOOP_NEXT_ULL

#define LOOP_NEXT_ULL ( func,
fini_code )
Value:
int func(unsigned long long *p_lb, unsigned long long *p_ub) { \
int status; \
long long stride; \
int gtid = __kmp_get_gtid(); \
MKLOC(loc, KMP_STR(func)); \
KA_TRACE(20, (KMP_STR(func) ": T#%d\n", gtid)); \
\
fini_code status = \
KMP_DISPATCH_NEXT_ULL(&loc, gtid, NULL, (kmp_uint64 *)p_lb, \
(kmp_uint64 *)p_ub, (kmp_int64 *)&stride); \
if (status) { \
*p_ub += (stride > 0) ? 1 : -1; \
} \
\
KA_TRACE( \
20, \
(KMP_STR( \
func) " exit: T#%d, *p_lb 0x%llx, *p_ub 0x%llx, stride 0x%llx, " \
"returning %d\n", \
gtid, *p_lb, *p_ub, stride, status)); \
return status; \
}
int64_t kmp_int64
Definition common.h:10
unsigned long long kmp_uint64

◆ LOOP_RUNTIME_START

#define LOOP_RUNTIME_START ( func,
schedule )

Definition at line 642 of file kmp_gsupport.cpp.

Referenced by LOOP_RUNTIME_START().

◆ LOOP_RUNTIME_START_ULL

#define LOOP_RUNTIME_START_ULL ( func,
schedule )

◆ LOOP_START

#define LOOP_START ( func,
schedule )

Definition at line 601 of file kmp_gsupport.cpp.

◆ LOOP_START_ULL

#define LOOP_START_ULL ( func,
schedule )

◆ MKLOC

◆ OMPT_LOOP_POST

#define OMPT_LOOP_POST ( )

◆ OMPT_LOOP_PRE

#define OMPT_LOOP_PRE ( )

◆ PARALLEL_LOOP

#define PARALLEL_LOOP ( func,
schedule,
ompt_pre,
ompt_post )
Value:
void func(void (*task)(void *), void *data, unsigned num_threads, long lb, \
long ub, long str, long chunk_sz, unsigned flags) { \
int gtid = __kmp_entry_gtid(); \
MKLOC(loc, KMP_STR(func)); \
KA_TRACE( \
20, \
(KMP_STR( \
func) ": T#%d, lb 0x%lx, ub 0x%lx, str 0x%lx, chunk_sz 0x%lx\n", \
gtid, lb, ub, str, chunk_sz)); \
\
ompt_pre(); \
IF_OMPT_SUPPORT(OMPT_STORE_RETURN_ADDRESS(gtid);) \
__kmp_GOMP_fork_call(&loc, gtid, num_threads, flags, task, \
9, task, data, num_threads, &loc, (schedule), lb, \
(str > 0) ? (ub - 1) : (ub + 1), str, chunk_sz); \
\
{ \
IF_OMPT_SUPPORT(OMPT_STORE_RETURN_ADDRESS(gtid);) \
KMP_DISPATCH_INIT(&loc, gtid, (schedule), lb, \
(str > 0) ? (ub - 1) : (ub + 1), str, chunk_sz, \
(schedule) != kmp_sch_static); \
} \
task(data); \
KMP_EXPAND_NAME(KMP_API_NAME_GOMP_PARALLEL_END)(); \
ompt_post(); \
\
KA_TRACE(20, (KMP_STR(func) " exit: T#%d\n", gtid)); \
}
@ kmp_sch_static
static unspecialized
Definition kmp.h:353
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void * data
#define __kmp_entry_gtid()
Definition kmp.h:3601
#define KMP_API_NAME_GOMP_PARALLEL_END
Definition kmp_ftn_os.h:648
#define KMP_DISPATCH_INIT
static void __kmp_GOMP_parallel_microtask_wrapper(int *gtid, int *npr, void(*task)(void *), void *data, unsigned num_threads, ident_t *loc, enum sched_type schedule, long start, long end, long incr, long chunk_size)
static void __kmp_GOMP_fork_call(ident_t *loc, int gtid, unsigned num_threads, unsigned flags, void(*unwrapped_task)(void *), microtask_t wrapper, int argc,...)
void(* microtask_t)(int *gtid, int *npr,...)
Definition kmp_os.h:1185

◆ PARALLEL_LOOP_START

#define PARALLEL_LOOP_START ( func,
schedule,
ompt_pre,
ompt_post )
Value:
void func(void (*task)(void *), void *data, unsigned num_threads, long lb, \
long ub, long str, long chunk_sz) { \
int gtid = __kmp_entry_gtid(); \
MKLOC(loc, KMP_STR(func)); \
KA_TRACE( \
20, \
(KMP_STR( \
func) ": T#%d, lb 0x%lx, ub 0x%lx, str 0x%lx, chunk_sz 0x%lx\n", \
gtid, lb, ub, str, chunk_sz)); \
\
ompt_pre(); \
\
__kmp_GOMP_fork_call(&loc, gtid, num_threads, 0u, task, \
9, task, data, num_threads, &loc, (schedule), lb, \
(str > 0) ? (ub - 1) : (ub + 1), str, chunk_sz); \
IF_OMPT_SUPPORT(OMPT_STORE_RETURN_ADDRESS(gtid)); \
\
KMP_DISPATCH_INIT(&loc, gtid, (schedule), lb, \
(str > 0) ? (ub - 1) : (ub + 1), str, chunk_sz, \
(schedule) != kmp_sch_static); \
\
ompt_post(); \
\
KA_TRACE(20, (KMP_STR(func) " exit: T#%d\n", gtid)); \
}

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
KMP_GOMP_DEPOBJ_IN 
KMP_GOMP_DEPOBJ_OUT 
KMP_GOMP_DEPOBJ_INOUT 
KMP_GOMP_DEPOBJ_MTXINOUTSET 

Definition at line 27 of file kmp_gsupport.cpp.

◆ anonymous enum

anonymous enum
Enumerator
KMP_GOMP_TASK_UNTIED_FLAG 
KMP_GOMP_TASK_FINAL_FLAG 
KMP_GOMP_TASK_DEPENDS_FLAG 

Definition at line 21 of file kmp_gsupport.cpp.

Function Documentation

◆ __GOMP_taskloop()

◆ __kmp_GOMP_doacross_post()

template<typename T, bool need_conversion = (sizeof(long) == 4)>
void __kmp_GOMP_doacross_post ( T * count)

References count.

Referenced by KMP_API_NAME_GOMP_DOACROSS_POST().

◆ __kmp_GOMP_doacross_post< long, false >()

template<>
void __kmp_GOMP_doacross_post< long, false > ( long * count)

Definition at line 1902 of file kmp_gsupport.cpp.

References __kmp_entry_gtid, __kmpc_doacross_post(), count, loc, MKLOC, and RCAST.

◆ __kmp_GOMP_doacross_post< long, true >()

template<>
void __kmp_GOMP_doacross_post< long, true > ( long * count)

◆ __kmp_GOMP_doacross_wait()

template<typename T>
void __kmp_GOMP_doacross_wait ( T first,
va_list args )

◆ __kmp_GOMP_fork_call()

◆ __kmp_GOMP_init_reductions()

◆ __kmp_GOMP_microtask_wrapper()

void __kmp_GOMP_microtask_wrapper ( int * gtid,
int * npr,
void(* task )(void *),
void * data )
static

◆ __kmp_GOMP_par_reductions_microtask_wrapper()

unsigned __kmp_GOMP_par_reductions_microtask_wrapper ( int * gtid,
int * npr,
void(* task )(void *),
void * data )
static

◆ __kmp_GOMP_parallel_microtask_wrapper()

void __kmp_GOMP_parallel_microtask_wrapper ( int * gtid,
int * npr,
void(* task )(void *),
void * data,
unsigned num_threads,
ident_t * loc,
enum sched_type schedule,
long start,
long end,
long incr,
long chunk_size )
static

◆ __kmp_GOMP_taskgroup_reduction_register()

void __kmp_GOMP_taskgroup_reduction_register ( uintptr_t * data,
kmp_taskgroup_t * tg,
int nthreads,
uintptr_t * allocated = nullptr )
inlinestatic

◆ KMP_API_NAME_GOMP_ALLOC()

void *KMP_EXPAND_NAME KMP_API_NAME_GOMP_ALLOC ( size_t alignment,
size_t size,
uintptr_t allocator )

◆ KMP_API_NAME_GOMP_ATOMIC_END()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_ATOMIC_END ( void )

◆ KMP_API_NAME_GOMP_ATOMIC_START()

◆ KMP_API_NAME_GOMP_BARRIER()

◆ KMP_API_NAME_GOMP_CRITICAL_END()

◆ KMP_API_NAME_GOMP_CRITICAL_NAME_END()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_CRITICAL_NAME_END ( void ** pptr)

◆ KMP_API_NAME_GOMP_CRITICAL_NAME_START()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_CRITICAL_NAME_START ( void ** pptr)

◆ KMP_API_NAME_GOMP_CRITICAL_START()

◆ KMP_API_NAME_GOMP_DOACROSS_POST()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_DOACROSS_POST ( long * count)

◆ KMP_API_NAME_GOMP_DOACROSS_ULL_POST()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_DOACROSS_ULL_POST ( unsigned long long * count)

◆ KMP_API_NAME_GOMP_DOACROSS_ULL_WAIT()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_DOACROSS_ULL_WAIT ( unsigned long long first,
... )

◆ KMP_API_NAME_GOMP_DOACROSS_WAIT()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_DOACROSS_WAIT ( long first,
... )

◆ KMP_API_NAME_GOMP_FREE()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_FREE ( void * ptr,
uintptr_t allocator )

Definition at line 2501 of file kmp_gsupport.cpp.

References ___kmpc_free(), __kmp_entry_gtid, KA_TRACE, and KMP_API_NAME_GOMP_FREE.

◆ KMP_API_NAME_GOMP_LOOP_DOACROSS_START()

◆ KMP_API_NAME_GOMP_LOOP_ORDERED_START()

◆ KMP_API_NAME_GOMP_LOOP_START()

◆ KMP_API_NAME_GOMP_LOOP_ULL_DOACROSS_START()

bool KMP_EXPAND_NAME KMP_API_NAME_GOMP_LOOP_ULL_DOACROSS_START ( unsigned ncounts,
unsigned long long * counts,
long sched,
unsigned long long chunk_size,
unsigned long long * istart,
unsigned long long * iend,
uintptr_t * reductions,
void ** mem )

◆ KMP_API_NAME_GOMP_LOOP_ULL_ORDERED_START()

bool KMP_EXPAND_NAME KMP_API_NAME_GOMP_LOOP_ULL_ORDERED_START ( bool up,
unsigned long long start,
unsigned long long end,
unsigned long long incr,
long sched,
unsigned long long chunk_size,
unsigned long long * istart,
unsigned long long * iend,
uintptr_t * reductions,
void ** mem )

◆ KMP_API_NAME_GOMP_LOOP_ULL_START()

◆ KMP_API_NAME_GOMP_ORDERED_END()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_ORDERED_END ( void )

◆ KMP_API_NAME_GOMP_ORDERED_START()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_ORDERED_START ( void )

◆ KMP_API_NAME_GOMP_PARALLEL_END()

◆ KMP_API_NAME_GOMP_PARALLEL_REDUCTIONS()

unsigned KMP_EXPAND_NAME KMP_API_NAME_GOMP_PARALLEL_REDUCTIONS ( void(* task )(void *),
void * data,
unsigned num_threads,
unsigned int flags )

◆ KMP_API_NAME_GOMP_PARALLEL_START()

◆ KMP_API_NAME_GOMP_SECTIONS2_START()

unsigned KMP_EXPAND_NAME KMP_API_NAME_GOMP_SECTIONS2_START ( unsigned count,
uintptr_t * reductions,
void ** mem )

◆ KMP_API_NAME_GOMP_SINGLE_COPY_END()

◆ KMP_API_NAME_GOMP_SINGLE_COPY_START()

◆ KMP_API_NAME_GOMP_SINGLE_START()

◆ KMP_API_NAME_GOMP_TASK_REDUCTION_REMAP()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TASK_REDUCTION_REMAP ( size_t cnt,
size_t cntorig,
void ** ptrs )

◆ KMP_API_NAME_GOMP_TASKGROUP_REDUCTION_REGISTER()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TASKGROUP_REDUCTION_REGISTER ( uintptr_t * data)

◆ KMP_API_NAME_GOMP_TASKGROUP_REDUCTION_UNREGISTER()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TASKGROUP_REDUCTION_UNREGISTER ( uintptr_t * data)

◆ KMP_API_NAME_GOMP_TASKLOOP()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TASKLOOP ( void(* func )(void *),
void * data,
void(* copy_func )(void *, void *),
long arg_size,
long arg_align,
unsigned gomp_flags,
unsigned long num_tasks,
int priority,
long start,
long end,
long step )

Definition at line 1929 of file kmp_gsupport.cpp.

References __GOMP_taskloop(), data, end, func(), and KMP_API_NAME_GOMP_TASKLOOP.

◆ KMP_API_NAME_GOMP_TASKLOOP_ULL()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TASKLOOP_ULL ( void(* func )(void *),
void * data,
void(* copy_func )(void *, void *),
long arg_size,
long arg_align,
unsigned gomp_flags,
unsigned long num_tasks,
int priority,
unsigned long long start,
unsigned long long end,
unsigned long long step )

Definition at line 1937 of file kmp_gsupport.cpp.

References __GOMP_taskloop(), data, end, func(), and KMP_API_NAME_GOMP_TASKLOOP_ULL.

◆ KMP_API_NAME_GOMP_TASKWAIT_DEPEND()

◆ KMP_API_NAME_GOMP_TEAMS_REG()

void KMP_EXPAND_NAME KMP_API_NAME_GOMP_TEAMS_REG ( void(* fn )(void *),
void * data,
unsigned num_teams,
unsigned thread_limit,
unsigned flags )

◆ KMP_API_NAME_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER()

◆ LOOP_RUNTIME_START() [1/2]

◆ LOOP_RUNTIME_START() [2/2]

◆ LOOP_START() [1/2]

◆ LOOP_START() [2/2]

Variable Documentation

◆ __kmp_unnamed_critical_addr

kmp_critical_name* __kmp_unnamed_critical_addr
extern