LLVM OpenMP 20.0.0git
Classes | Macros | Enumerations | Functions | Variables
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)    static ident_t loc = {0, KMP_IDENT_KMPC, 0, 0, ";unknown;unknown;0;0;;"};
 
#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.

◆ 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
Definition: kmp_global.cpp:450
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:3609
#define KMP_DISPATCH_NEXT
#define KMP_STR(x)
Definition: kmp_os.h:411
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.

◆ 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.

◆ 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

#define MKLOC (   loc,
  routine 
)     static ident_t loc = {0, KMP_IDENT_KMPC, 0, 0, ";unknown;unknown;0;0;;"};

Definition at line 120 of file kmp_gsupport.cpp.

◆ 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:373
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:3610
#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 KMP_EXPAND_NAME() KMP_API_NAME_GOMP_PARALLEL_END(void)
void(* microtask_t)(int *gtid, int *npr,...)
Definition: kmp_os.h:1183

◆ 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_TASK_UNTIED_FLAG 
KMP_GOMP_TASK_FINAL_FLAG 
KMP_GOMP_TASK_DEPENDS_FLAG 

Definition at line 21 of file kmp_gsupport.cpp.

◆ 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.

Function Documentation

◆ __GOMP_taskloop()

template<typename T >
kmp_sch_dynamic_chunked kmp_sch_guided_chunked kmp_sch_runtime void __GOMP_taskloop ( void(*)(void *)  func,
void data,
void(*)(void *, void *)  copy_func,
long  arg_size,
long  arg_align,
unsigned  gomp_flags,
unsigned long  num_tasks,
int  priority,
start,
end,
step 
)

◆ __kmp_GOMP_doacross_post()

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

◆ __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 ( first,
va_list  args 
)

◆ __kmp_GOMP_fork_call()

static void __kmp_GOMP_fork_call ( ident_t loc,
int  gtid,
unsigned  num_threads,
unsigned  flags,
void(*)(void *)  unwrapped_task,
microtask_t  wrapper,
int  argc,
  ... 
)
static

◆ __kmp_GOMP_init_reductions()

static void __kmp_GOMP_init_reductions ( int  gtid,
uintptr_t *  data,
int  is_ws 
)
static

◆ __kmp_GOMP_microtask_wrapper()

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

◆ __kmp_GOMP_par_reductions_microtask_wrapper()

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

◆ __kmp_GOMP_parallel_microtask_wrapper()

static void __kmp_GOMP_parallel_microtask_wrapper ( int gtid,
int npr,
void(*)(void *)  task,
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()

static 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 
)

Definition at line 2491 of file kmp_gsupport.cpp.

References __kmp_alloc(), __kmp_entry_gtid, alignment, KA_TRACE, and size.

◆ KMP_API_NAME_GOMP_ATOMIC_END()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_ATOMIC_END ( void  )

◆ KMP_API_NAME_GOMP_ATOMIC_START()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_ATOMIC_START ( void  )

◆ KMP_API_NAME_GOMP_BARRIER()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_BARRIER ( void  )

◆ KMP_API_NAME_GOMP_CRITICAL_END()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_CRITICAL_END ( void  )

◆ KMP_API_NAME_GOMP_CRITICAL_NAME_END()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_CRITICAL_NAME_END ( void **  pptr)

Definition at line 183 of file kmp_gsupport.cpp.

References __kmp_get_gtid, __kmpc_end_critical(), KA_TRACE, loc, and MKLOC.

◆ KMP_API_NAME_GOMP_CRITICAL_NAME_START()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_CRITICAL_NAME_START ( void **  pptr)

Definition at line 176 of file kmp_gsupport.cpp.

References __kmp_entry_gtid, __kmpc_critical(), KA_TRACE, loc, and MKLOC.

◆ KMP_API_NAME_GOMP_CRITICAL_START()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_CRITICAL_START ( void  )

◆ KMP_API_NAME_GOMP_DOACROSS_POST()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_DOACROSS_POST ( long *  count)

Definition at line 1947 of file kmp_gsupport.cpp.

References __kmp_GOMP_doacross_post(), and count.

◆ KMP_API_NAME_GOMP_DOACROSS_ULL_POST()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_DOACROSS_ULL_POST ( unsigned long long *  count)

Definition at line 1958 of file kmp_gsupport.cpp.

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

◆ KMP_API_NAME_GOMP_DOACROSS_ULL_WAIT()

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

Definition at line 1965 of file kmp_gsupport.cpp.

References args.

◆ KMP_API_NAME_GOMP_DOACROSS_WAIT()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_DOACROSS_WAIT ( long  first,
  ... 
)

Definition at line 1951 of file kmp_gsupport.cpp.

References args.

◆ 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, and KA_TRACE.

◆ KMP_API_NAME_GOMP_LOOP_DOACROSS_START()

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 
)

◆ KMP_API_NAME_GOMP_LOOP_ORDERED_START()

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 
)

◆ KMP_API_NAME_GOMP_LOOP_START()

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 
)

◆ 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()

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 
)

◆ KMP_API_NAME_GOMP_ORDERED_END()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_ORDERED_END ( void  )

Definition at line 345 of file kmp_gsupport.cpp.

References __kmp_get_gtid, __kmpc_end_ordered(), KA_TRACE, loc, and MKLOC.

◆ KMP_API_NAME_GOMP_ORDERED_START()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_ORDERED_START ( void  )

Definition at line 335 of file kmp_gsupport.cpp.

References __kmp_entry_gtid, __kmpc_ordered(), KA_TRACE, loc, and MKLOC.

◆ KMP_API_NAME_GOMP_PARALLEL_END()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_PARALLEL_END ( void  )

◆ KMP_API_NAME_GOMP_PARALLEL_REDUCTIONS()

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

◆ KMP_API_NAME_GOMP_PARALLEL_START()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_PARALLEL_START ( void(*)(void *)  task,
void data,
unsigned  num_threads 
)

◆ 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()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_SINGLE_COPY_END ( void data)

◆ KMP_API_NAME_GOMP_SINGLE_COPY_START()

void *KMP_EXPAND_NAME() KMP_API_NAME_GOMP_SINGLE_COPY_START ( void  )

◆ KMP_API_NAME_GOMP_SINGLE_START()

int KMP_EXPAND_NAME() KMP_API_NAME_GOMP_SINGLE_START ( void  )

◆ 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)

Definition at line 2037 of file kmp_gsupport.cpp.

References __kmp_free, __kmp_get_gtid, data, KA_TRACE, and KMP_ASSERT.

◆ KMP_API_NAME_GOMP_TASKLOOP()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_TASKLOOP ( void(*)(void *)  func,
void data,
void(*)(void *, void *)  copy_func,
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 data, end, and func().

◆ KMP_API_NAME_GOMP_TASKLOOP_ULL()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_TASKLOOP_ULL ( void(*)(void *)  func,
void data,
void(*)(void *, void *)  copy_func,
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 data, end, and func().

◆ KMP_API_NAME_GOMP_TASKWAIT_DEPEND()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_TASKWAIT_DEPEND ( void **  depend)

◆ KMP_API_NAME_GOMP_TEAMS_REG()

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

◆ KMP_API_NAME_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER()

void KMP_EXPAND_NAME() KMP_API_NAME_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER ( bool  cancelled)

◆ 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