LLVM OpenMP 19.0.0git
Classes | Macros | Typedefs | Functions | Variables
kmp_runtime.cpp File Reference
#include "kmp.h"
#include "kmp_affinity.h"
#include "kmp_atomic.h"
#include "kmp_environment.h"
#include "kmp_error.h"
#include "kmp_i18n.h"
#include "kmp_io.h"
#include "kmp_itt.h"
#include "kmp_settings.h"
#include "kmp_stats.h"
#include "kmp_str.h"
#include "kmp_wait_release.h"
#include "kmp_wrapper_getpid.h"
#include "kmp_dispatch.h"
#include "kmp_utils.h"

Go to the source code of this file.

Classes

struct  kmp_affinity_format_field_t
 

Macros

#define KMP_USE_PRCTL   0
 
#define KMP_MIN(x, y)   ((x) < (y) ? (x) : (y))
 
#define MAX_MESSAGE   512
 
#define propagateFPControl(x)   ((void)0)
 
#define updateHWFPControl(x)   ((void)0)
 
#define FAST_REDUCTION_ATOMIC_METHOD_GENERATED
 
#define FAST_REDUCTION_TREE_METHOD_GENERATED   ((reduce_data) && (reduce_func))
 

Typedefs

typedef struct kmp_affinity_format_field_t kmp_affinity_format_field_t
 

Functions

void __kmp_cleanup (void)
 
static void __kmp_initialize_info (kmp_info_t *, kmp_team_t *, int tid, int gtid)
 
static void __kmp_initialize_team (kmp_team_t *team, int new_nproc, kmp_internal_control_t *new_icvs, ident_t *loc)
 
static void __kmp_do_serial_initialize (void)
 
void __kmp_fork_barrier (int gtid, int tid)
 
void __kmp_join_barrier (int gtid)
 
void __kmp_setup_icv_copy (kmp_team_t *team, int new_nproc, kmp_internal_control_t *new_icvs, ident_t *loc)
 
static int __kmp_expand_threads (int nNeed)
 
static void __kmp_reap_thread (kmp_info_t *thread, int is_root)
 
void __kmp_resize_dist_barrier (kmp_team_t *team, int old_nthreads, int new_nthreads)
 
void __kmp_add_threads_to_team (kmp_team_t *team, int new_nthreads)
 
int __kmp_get_global_thread_id ()
 
int __kmp_get_global_thread_id_reg ()
 
void __kmp_check_stack_overlap (kmp_info_t *th)
 
void __kmp_infinite_loop (void)
 
void __kmp_print_storage_map_gtid (int gtid, void *p1, void *p2, size_t size, char const *format,...)
 
void __kmp_warn (char const *format,...)
 
void __kmp_abort_process ()
 
void __kmp_abort_thread (void)
 
static void __kmp_print_thread_storage_map (kmp_info_t *thr, int gtid)
 
static void __kmp_print_team_storage_map (const char *header, kmp_team_t *team, int team_id, int num_thr)
 
static void __kmp_init_allocator ()
 
static void __kmp_fini_allocator ()
 
void __kmp_parallel_deo (int *gtid_ref, int *cid_ref, ident_t *loc_ref)
 
void __kmp_parallel_dxo (int *gtid_ref, int *cid_ref, ident_t *loc_ref)
 
int __kmp_enter_single (int gtid, ident_t *id_ref, int push_ws)
 
void __kmp_exit_single (int gtid)
 
static int __kmp_reserve_threads (kmp_root_t *root, kmp_team_t *parent_team, int master_tid, int set_nthreads, int enter_teams)
 
static void __kmp_fork_team_threads (kmp_root_t *root, kmp_team_t *team, kmp_info_t *master_th, int master_gtid, int fork_teams_workers)
 
static void __kmp_alloc_argv_entries (int argc, kmp_team_t *team, int realloc)
 
void __kmp_serialized_parallel (ident_t *loc, kmp_int32 global_tid)
 
static bool __kmp_is_fork_in_teams (kmp_info_t *master_th, microtask_t microtask, int level, int teams_level, kmp_va_list ap)
 
static bool __kmp_is_entering_teams (int active_level, int level, int teams_level, kmp_va_list ap)
 
static int __kmp_fork_in_teams (ident_t *loc, int gtid, kmp_team_t *parent_team, kmp_int32 argc, kmp_info_t *master_th, kmp_root_t *root, enum fork_context_e call_context, microtask_t microtask, launch_t invoker, int master_set_numthreads, int level, kmp_va_list ap)
 
static int __kmp_serial_fork_call (ident_t *loc, int gtid, enum fork_context_e call_context, kmp_int32 argc, microtask_t microtask, launch_t invoker, kmp_info_t *master_th, kmp_team_t *parent_team, kmp_va_list ap)
 
int __kmp_fork_call (ident_t *loc, int gtid, enum fork_context_e call_context, kmp_int32 argc, microtask_t microtask, launch_t invoker, kmp_va_list ap)
 
void __kmp_join_call (ident_t *loc, int gtid, int exit_teams)
 
void __kmp_save_internal_controls (kmp_info_t *thread)
 
void __kmp_set_num_threads (int new_nth, int gtid)
 
void __kmp_set_max_active_levels (int gtid, int max_active_levels)
 
int __kmp_get_max_active_levels (int gtid)
 
void __kmp_set_num_teams (int num_teams)
 
int __kmp_get_max_teams (void)
 
void __kmp_set_teams_thread_limit (int limit)
 
int __kmp_get_teams_thread_limit (void)
 
 KMP_BUILD_ASSERT (sizeof(kmp_sched_t)==sizeof(int))
 
 KMP_BUILD_ASSERT (sizeof(enum sched_type)==sizeof(int))
 
void __kmp_set_schedule (int gtid, kmp_sched_t kind, int chunk)
 
void __kmp_get_schedule (int gtid, kmp_sched_t *kind, int *chunk)
 
int __kmp_get_ancestor_thread_num (int gtid, int level)
 
int __kmp_get_team_size (int gtid, int level)
 
kmp_r_sched_t __kmp_get_schedule_global ()
 
static void __kmp_allocate_team_arrays (kmp_team_t *team, int max_nth)
 
static void __kmp_free_team_arrays (kmp_team_t *team)
 
static void __kmp_reallocate_team_arrays (kmp_team_t *team, int max_nth)
 
static kmp_internal_control_t __kmp_get_global_icvs (void)
 
static kmp_internal_control_t __kmp_get_x_global_icvs (const kmp_team_t *team)
 
static void __kmp_initialize_root (kmp_root_t *root)
 
unsigned short __kmp_get_random (kmp_info_t *thread)
 
void __kmp_init_random (kmp_info_t *thread)
 
int __kmp_register_root (int initial_thread)
 
static int __kmp_reset_root (int gtid, kmp_root_t *root)
 
void __kmp_unregister_root_current_thread (int gtid)
 
kmp_info_t__kmp_allocate_thread (kmp_root_t *root, kmp_team_t *team, int new_tid)
 
static void __kmp_reinitialize_team (kmp_team_t *team, kmp_internal_control_t *new_icvs, ident_t *loc)
 
kmp_team_t__kmp_allocate_team (kmp_root_t *root, int new_nproc, int max_nproc, kmp_proc_bind_t new_proc_bind, kmp_internal_control_t *new_icvs, int argc USE_NESTED_HOT_ARG(kmp_info_t *master))
 
void __kmp_free_team (kmp_root_t *root, kmp_team_t *team USE_NESTED_HOT_ARG(kmp_info_t *master))
 
kmp_team_t__kmp_reap_team (kmp_team_t *team)
 
void __kmp_free_thread (kmp_info_t *this_th)
 
void__kmp_launch_thread (kmp_info_t *this_thr)
 
void __kmp_internal_end_dest (void *specific_gtid)
 
void __kmp_internal_end_atexit (void)
 
static void __kmp_itthash_clean (kmp_info_t *th)
 
static void __kmp_internal_end (void)
 
void __kmp_internal_end_library (int gtid_req)
 
void __kmp_internal_end_thread (int gtid_req)
 
static char__kmp_reg_status_name ()
 
void __kmp_register_library_startup (void)
 
void __kmp_unregister_library (void)
 
void __kmp_serial_initialize (void)
 
static void __kmp_do_middle_initialize (void)
 
void __kmp_middle_initialize (void)
 
void __kmp_parallel_initialize (void)
 
void __kmp_hidden_helper_initialize ()
 
void __kmp_run_before_invoked_task (int gtid, int tid, kmp_info_t *this_thr, kmp_team_t *team)
 
void __kmp_run_after_invoked_task (int gtid, int tid, kmp_info_t *this_thr, kmp_team_t *team)
 
int __kmp_invoke_task_func (int gtid)
 
void __kmp_teams_master (int gtid)
 
int __kmp_invoke_teams_master (int gtid)
 
void __kmp_push_num_threads (ident_t *id, int gtid, int num_threads)
 
static void __kmp_push_thread_limit (kmp_info_t *thr, int num_teams, int num_threads)
 
void __kmp_push_num_teams (ident_t *id, int gtid, int num_teams, int num_threads)
 
void __kmp_push_num_teams_51 (ident_t *id, int gtid, int num_teams_lb, int num_teams_ub, int num_threads)
 
void __kmp_push_proc_bind (ident_t *id, int gtid, kmp_proc_bind_t proc_bind)
 
void __kmp_internal_fork (ident_t *id, int gtid, kmp_team_t *team)
 
void __kmp_internal_join (ident_t *id, int gtid, kmp_team_t *team)
 
int __kmp_ignore_mppbeg (void)
 
int __kmp_ignore_mppend (void)
 
void __kmp_internal_begin (void)
 
void __kmp_user_set_library (enum library_type arg)
 
void __kmp_aux_set_stacksize (size_t arg)
 
void __kmp_aux_set_library (enum library_type arg)
 
static kmp_team_t__kmp_aux_get_team_info (int &teams_serialized)
 
int __kmp_aux_get_team_num ()
 
int __kmp_aux_get_num_teams ()
 
static int __kmp_aux_capture_affinity_field (int gtid, const kmp_info_t *th, const char **ptr, kmp_str_buf_t *field_buffer)
 
size_t __kmp_aux_capture_affinity (int gtid, const char *format, kmp_str_buf_t *buffer)
 
void __kmp_aux_display_affinity (int gtid, const char *format)
 
void __kmp_aux_set_blocktime (int arg, kmp_info_t *thread, int tid)
 
void __kmp_aux_set_defaults (char const *str, size_t len)
 
PACKED_REDUCTION_METHOD_T __kmp_determine_reduction_method (ident_t *loc, kmp_int32 global_tid, kmp_int32 num_vars, size_t reduce_size, void *reduce_data, void(*reduce_func)(void *lhs_data, void *rhs_data), kmp_critical_name *lck)
 
kmp_int32 __kmp_get_reduce_method (void)
 
void __kmp_soft_pause ()
 
void __kmp_hard_pause ()
 
void __kmp_resume_if_soft_paused ()
 
int __kmp_pause_resource (kmp_pause_status_t level)
 
void __kmp_omp_display_env (int verbose)
 
void __kmp_hidden_helper_threads_initz_routine ()
 
void __kmp_init_nesting_mode ()
 
void __kmp_set_nesting_mode_threads ()
 
void __kmp_reset_stats ()
 
void __kmp_itt_fini_ittlib ()
 
void __kmp_itt_init_ittlib ()
 

Variables

char const __kmp_version_omp_api []
 
kmp_info_t__kmp_thread_pool_insert_pt = NULL
 
static const unsigned __kmp_primes []
 
static long __kmp_registration_flag = 0
 
static char__kmp_registration_str = NULL
 
static const kmp_affinity_format_field_t __kmp_affinity_format_table []
 
kmp_info_t ** __kmp_hidden_helper_threads
 
kmp_info_t__kmp_hidden_helper_main_thread
 
std::atomic< kmp_int32__kmp_unexecuted_hidden_helper_tasks
 
kmp_int32 __kmp_hidden_helper_threads_num = 0
 
kmp_int32 __kmp_enable_hidden_helper = FALSE
 
int __kmp_omp_debug_struct_info = FALSE
 
int __kmp_debugging = FALSE
 

Macro Definition Documentation

◆ FAST_REDUCTION_ATOMIC_METHOD_GENERATED

#define FAST_REDUCTION_ATOMIC_METHOD_GENERATED
Value:
(loc && \
@ KMP_IDENT_ATOMIC_REDUCE
Compiler generates atomic reduction option for kmpc_reduce*.
Definition: kmp.h:214
static id loc

◆ FAST_REDUCTION_TREE_METHOD_GENERATED

#define FAST_REDUCTION_TREE_METHOD_GENERATED   ((reduce_data) && (reduce_func))

◆ KMP_MIN

#define KMP_MIN (   x,
 
)    ((x) < (y) ? (x) : (y))

Definition at line 74 of file kmp_runtime.cpp.

◆ KMP_USE_PRCTL

#define KMP_USE_PRCTL   0

Definition at line 45 of file kmp_runtime.cpp.

◆ MAX_MESSAGE

#define MAX_MESSAGE   512

Definition at line 357 of file kmp_runtime.cpp.

◆ propagateFPControl

#define propagateFPControl (   x)    ((void)0)

Definition at line 1152 of file kmp_runtime.cpp.

◆ updateHWFPControl

#define updateHWFPControl (   x)    ((void)0)

Definition at line 1153 of file kmp_runtime.cpp.

Typedef Documentation

◆ kmp_affinity_format_field_t

Function Documentation

◆ __kmp_abort_process()

void __kmp_abort_process ( void  )

◆ __kmp_abort_thread()

void __kmp_abort_thread ( void  )

◆ __kmp_add_threads_to_team()

void __kmp_add_threads_to_team ( kmp_team_t team,
int  new_nthreads 
)

◆ __kmp_alloc_argv_entries()

static void __kmp_alloc_argv_entries ( int  argc,
kmp_team_t team,
int  realloc 
)
static

◆ __kmp_allocate_team()

kmp_team_t * __kmp_allocate_team ( kmp_root_t root,
int  new_nproc,
int  max_nproc,
kmp_proc_bind_t  new_proc_bind,
kmp_internal_control_t new_icvs,
int argc   USE_NESTED_HOT_ARGkmp_info_t *master 
)

◆ __kmp_allocate_team_arrays()

static void __kmp_allocate_team_arrays ( kmp_team_t team,
int  max_nth 
)
static

◆ __kmp_allocate_thread()

kmp_info_t * __kmp_allocate_thread ( kmp_root_t root,
kmp_team_t team,
int  new_tid 
)

◆ __kmp_aux_capture_affinity()

size_t __kmp_aux_capture_affinity ( int  gtid,
const char format,
kmp_str_buf_t buffer 
)

◆ __kmp_aux_capture_affinity_field()

static int __kmp_aux_capture_affinity_field ( int  gtid,
const kmp_info_t th,
const char **  ptr,
kmp_str_buf_t field_buffer 
)
static

◆ __kmp_aux_display_affinity()

void __kmp_aux_display_affinity ( int  gtid,
const char format 
)

◆ __kmp_aux_get_num_teams()

int __kmp_aux_get_num_teams ( )

Definition at line 8449 of file kmp_runtime.cpp.

References __kmp_aux_get_team_info(), and kmp_team::t.

Referenced by __kmp_aux_capture_affinity_field(), and FTN_GET_NUM_TEAMS().

◆ __kmp_aux_get_team_info()

static kmp_team_t * __kmp_aux_get_team_info ( int teams_serialized)
static

◆ __kmp_aux_get_team_num()

int __kmp_aux_get_team_num ( )

Definition at line 8436 of file kmp_runtime.cpp.

References __kmp_aux_get_team_info(), and kmp_team::t.

Referenced by __kmp_aux_capture_affinity_field(), and FTN_GET_TEAM_NUM().

◆ __kmp_aux_set_blocktime()

void __kmp_aux_set_blocktime ( int  arg,
kmp_info_t thread,
int  tid 
)

◆ __kmp_aux_set_defaults()

void __kmp_aux_set_defaults ( char const *  str,
size_t  len 
)

◆ __kmp_aux_set_library()

void __kmp_aux_set_library ( enum library_type  arg)

◆ __kmp_aux_set_stacksize()

void __kmp_aux_set_stacksize ( size_t  arg)

◆ __kmp_check_stack_overlap()

void __kmp_check_stack_overlap ( kmp_info_t th)

◆ __kmp_cleanup()

void __kmp_cleanup ( void  )

◆ __kmp_determine_reduction_method()

PACKED_REDUCTION_METHOD_T __kmp_determine_reduction_method ( ident_t loc,
kmp_int32  global_tid,
kmp_int32  num_vars,
size_t  reduce_size,
void reduce_data,
void(*)(void *lhs_data, void *rhs_data)  reduce_func,
kmp_critical_name lck 
)

◆ __kmp_do_middle_initialize()

static void __kmp_do_middle_initialize ( void  )
static

◆ __kmp_do_serial_initialize()

static void __kmp_do_serial_initialize ( void  )
static

Definition at line 7012 of file kmp_runtime.cpp.

References __kmp_abort_delay, __kmp_all_nth, __kmp_allocate, __kmp_allThreadsSpecified, __kmp_atomic_lock, __kmp_atomic_lock_10r, __kmp_atomic_lock_16c, __kmp_atomic_lock_16r, __kmp_atomic_lock_1i, __kmp_atomic_lock_20c, __kmp_atomic_lock_2i, __kmp_atomic_lock_32c, __kmp_atomic_lock_4i, __kmp_atomic_lock_4r, __kmp_atomic_lock_8c, __kmp_atomic_lock_8i, __kmp_atomic_lock_8r, __kmp_barrier_gather_bb_dflt, __kmp_barrier_gather_branch_bits, __kmp_barrier_gather_pat_dflt, __kmp_barrier_gather_pattern, __kmp_barrier_release_bb_dflt, __kmp_barrier_release_branch_bits, __kmp_barrier_release_pat_dflt, __kmp_barrier_release_pattern, __kmp_cg_max_nth, __kmp_common_initialize(), __kmp_debug_lock, __kmp_default_tp_capacity(), __kmp_dflt_blocktime, __kmp_dflt_team_nth_ub, __kmp_dispatch_lock, __kmp_display_env, __kmp_display_env_verbose, __kmp_env_checks, __kmp_env_free(), __kmp_env_get(), __kmp_env_initialize(), __kmp_env_print(), __kmp_env_print_2(), __kmp_exit_lock, __kmp_fatal(), __kmp_foreign_tp, __kmp_forkjoin_lock, __kmp_global, __kmp_global_lock, __kmp_i18n_dump_catalog(), __kmp_init_allocator(), __kmp_init_atomic_lock(), __kmp_init_bootstrap_lock(), __kmp_init_counter, __kmp_init_lock(), __kmp_init_nesting_mode(), __kmp_init_queuing_lock(), __kmp_init_serial, __kmp_initial_threads_capacity(), __kmp_internal_end_atexit(), __kmp_library, __kmp_max_nth, __kmp_msg_null, __kmp_need_register_serial, __kmp_nth, __kmp_print_version_1(), __kmp_printf(), __kmp_register_atfork(), __kmp_register_library_startup(), __kmp_register_root(), __kmp_root, __kmp_runtime_initialize(), __kmp_settings, __kmp_static, __kmp_stats_init(), __kmp_str_buf_free(), __kmp_str_buf_init, __kmp_str_match_true(), __kmp_sys_max_nth, __kmp_team_pool, __kmp_teams_max_nth, __kmp_thread_pool, __kmp_thread_pool_insert_pt, __kmp_threads, __kmp_threads_capacity, __kmp_tp_cached_lock, __kmp_tp_capacity, __kmp_validate_locks(), __kmp_version, __kmp_xproc, bp_hierarchical_bar, bs_forkjoin_barrier, bs_last_barrier, bs_plain_barrier, bs_reduction_barrier, CACHE_LINE, dynamic_default, FALSE, i, KA_TRACE, KMP_ASSERT, KMP_DEBUG_ASSERT, KMP_DEFAULT_BLOCKTIME, KMP_ERR, KMP_INITIAL_GTID, KMP_MB, KMP_MIN_NTH, KMP_MSG, kmp_sch_static_balanced, KMP_UBER_GTID(), library_throughput, ompt_post_init(), ompt_pre_init(), size, kmp_str_buf::str, TCR_4, TCW_SYNC_4, TRUE, and val.

Referenced by __kmp_do_middle_initialize(), __kmp_get_global_thread_id_reg(), __kmp_omp_display_env(), and __kmp_serial_initialize().

◆ __kmp_enter_single()

int __kmp_enter_single ( int  gtid,
ident_t id_ref,
int  push_ws 
)

◆ __kmp_exit_single()

void __kmp_exit_single ( int  gtid)

Definition at line 737 of file kmp_runtime.cpp.

References __kmp_env_consistency_check, __kmp_pop_workshare(), and ct_psingle.

Referenced by __kmpc_end_single().

◆ __kmp_expand_threads()

static int __kmp_expand_threads ( int  nNeed)
static

◆ __kmp_fini_allocator()

static void __kmp_fini_allocator ( )
static

Definition at line 567 of file kmp_runtime.cpp.

References __kmp_fini_memkind().

Referenced by __kmp_internal_end_library().

◆ __kmp_fork_barrier()

void __kmp_fork_barrier ( int  gtid,
int  tid 
)

◆ __kmp_fork_call()

int __kmp_fork_call ( ident_t loc,
int  gtid,
enum fork_context_e  call_context,
kmp_int32  argc,
microtask_t  microtask,
launch_t  invoker,
kmp_va_list  ap 
)

Definition at line 1897 of file kmp_runtime.cpp.

References __kmp_acquire_bootstrap_lock(), __kmp_allocate, __kmp_allocate_team(), __kmp_assign_root_init_mask, __kmp_barrier_release_pattern, __kmp_fork_in_teams(), __kmp_fork_team_threads(), __kmp_forkjoin_lock, __kmp_init_parallel, __kmp_init_serial, __kmp_internal_fork(), __kmp_is_entering_teams(), __kmp_is_fork_in_teams(), __kmp_library, __kmp_nested_nth, __kmp_nested_proc_bind, __kmp_parallel_initialize(), __kmp_release_bootstrap_lock(), __kmp_reserve_threads(), __kmp_resume_if_soft_paused(), __kmp_root, __kmp_serial_fork_call(), __kmp_setup_icv_copy(), __kmp_stkpadding, __kmp_teams_master(), __kmp_teams_proc_bind, __kmp_threads, __ompt_get_task_info_internal(), kmp_nested_proc_bind_t::bind_types, bp_dist_bar, bs_forkjoin_barrier, cancel_noreq, copy_icvs(), ompt_callbacks_active_s::enabled, fork_context_gnu, get__nproc_2, get__sched_2, i, if(), KA_TRACE, KC_TRACE, KF_TRACE, KMP_ALLOCA, KMP_ASSERT2, KMP_ATOMIC_INC, KMP_CHECK_UPDATE, KMP_CHECK_UPDATE_SYNC, KMP_COUNT_VALUE, KMP_DEBUG_ASSERT, KMP_DEBUG_ASSERT_TASKTEAM_INVARIANT, KMP_GET_THREAD_STATE, KMP_MAX_STKPADDING, KMP_MB, KMP_SET_THREAD_STATE, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, kmp_va_deref, level, library_serial, loc, microtask(), kmp_internal_control::next, kmp_internal_control::nproc, kmp_nested_nthreads_t::nth, ompt_callbacks, ompt_enabled, OMPT_INVOKER, kmp_internal_control::proc_bind, proc_bind_default, proc_bind_false, propagateFPControl, kmp_r_sched::sched, short, kmp_team::t, TCR_4, TRUE, USE_NESTED_HOT_ARG, kmp_nested_proc_bind_t::used, and kmp_nested_nthreads_t::used.

Referenced by __kmp_GOMP_fork_call(), __kmp_teams_master(), __kmpc_fork_call(), and __kmpc_fork_teams().

◆ __kmp_fork_in_teams()

static int __kmp_fork_in_teams ( ident_t loc,
int  gtid,
kmp_team_t parent_team,
kmp_int32  argc,
kmp_info_t master_th,
kmp_root_t root,
enum fork_context_e  call_context,
microtask_t  microtask,
launch_t  invoker,
int  master_set_numthreads,
int  level,
kmp_va_list  ap 
)
inlinestatic

◆ __kmp_fork_team_threads()

static void __kmp_fork_team_threads ( kmp_root_t root,
kmp_team_t team,
kmp_info_t master_th,
int  master_gtid,
int  fork_teams_workers 
)
static

◆ __kmp_free_team()

void __kmp_free_team ( kmp_root_t root,
kmp_team_t *team   USE_NESTED_HOT_ARGkmp_info_t *master 
)

◆ __kmp_free_team_arrays()

static void __kmp_free_team_arrays ( kmp_team_t team)
static

Definition at line 3204 of file kmp_runtime.cpp.

References __kmp_dispatch_free_hierarchies(), __kmp_free, i, and kmp_team::t.

Referenced by __kmp_reap_team().

◆ __kmp_free_thread()

void __kmp_free_thread ( kmp_info_t this_th)

◆ __kmp_get_ancestor_thread_num()

int __kmp_get_ancestor_thread_num ( int  gtid,
int  level 
)

◆ __kmp_get_global_icvs()

static kmp_internal_control_t __kmp_get_global_icvs ( void  )
static

◆ __kmp_get_global_thread_id()

int __kmp_get_global_thread_id ( void  )

◆ __kmp_get_global_thread_id_reg()

int __kmp_get_global_thread_id_reg ( void  )

◆ __kmp_get_max_active_levels()

int __kmp_get_max_active_levels ( int  gtid)

Definition at line 2855 of file kmp_runtime.cpp.

References __kmp_init_serial, __kmp_threads, KF_TRACE, and KMP_DEBUG_ASSERT.

Referenced by FTN_GET_MAX_ACTIVE_LEVELS().

◆ __kmp_get_max_teams()

int __kmp_get_max_teams ( void  )

Definition at line 2875 of file kmp_runtime.cpp.

References __kmp_nteams.

Referenced by FTN_GET_MAX_TEAMS().

◆ __kmp_get_random()

unsigned short __kmp_get_random ( kmp_info_t thread)

Definition at line 3591 of file kmp_runtime.cpp.

References KA_TRACE, r, and short.

Referenced by __kmp_execute_tasks_template(), and __kmp_reserve_threads().

◆ __kmp_get_reduce_method()

kmp_int32 __kmp_get_reduce_method ( void  )

Definition at line 8954 of file kmp_runtime.cpp.

References __kmp_entry_thread().

◆ __kmp_get_schedule()

void __kmp_get_schedule ( int  gtid,
kmp_sched_t kind,
int chunk 
)

◆ __kmp_get_schedule_global()

kmp_r_sched_t __kmp_get_schedule_global ( void  )

◆ __kmp_get_team_size()

int __kmp_get_team_size ( int  gtid,
int  level 
)

◆ __kmp_get_teams_thread_limit()

int __kmp_get_teams_thread_limit ( void  )

Definition at line 2881 of file kmp_runtime.cpp.

References __kmp_teams_thread_limit.

Referenced by FTN_GET_TEAMS_THREAD_LIMIT().

◆ __kmp_get_x_global_icvs()

static kmp_internal_control_t __kmp_get_x_global_icvs ( const kmp_team_t team)
static

◆ __kmp_hard_pause()

void __kmp_hard_pause ( )

Definition at line 8964 of file kmp_runtime.cpp.

References __kmp_internal_end_thread(), __kmp_pause_status, and kmp_hard_paused.

Referenced by __kmp_pause_resource().

◆ __kmp_hidden_helper_initialize()

void __kmp_hidden_helper_initialize ( )

◆ __kmp_hidden_helper_threads_initz_routine()

void __kmp_hidden_helper_threads_initz_routine ( )

◆ __kmp_ignore_mppbeg()

int __kmp_ignore_mppbeg ( void  )

Definition at line 8265 of file kmp_runtime.cpp.

References __kmp_str_match_false(), FALSE, and TRUE.

Referenced by __kmpc_begin().

◆ __kmp_ignore_mppend()

int __kmp_ignore_mppend ( void  )

Definition at line 8276 of file kmp_runtime.cpp.

References __kmp_str_match_false(), FALSE, and TRUE.

Referenced by __kmpc_end().

◆ __kmp_infinite_loop()

void __kmp_infinite_loop ( void  )

Definition at line 349 of file kmp_runtime.cpp.

References FALSE, KMP_YIELD, and TRUE.

Referenced by __kmp_abort_process(), __kmp_abort_thread(), and __kmp_parallel_initialize().

◆ __kmp_init_allocator()

static void __kmp_init_allocator ( )
static

Definition at line 563 of file kmp_runtime.cpp.

References __kmp_init_memkind(), and __kmp_init_target_mem().

Referenced by __kmp_do_serial_initialize().

◆ __kmp_init_nesting_mode()

void __kmp_init_nesting_mode ( )

◆ __kmp_init_random()

void __kmp_init_random ( kmp_info_t thread)

Definition at line 3604 of file kmp_runtime.cpp.

References __kmp_primes, and KA_TRACE.

Referenced by __kmp_allocate_thread(), and __kmp_register_root().

◆ __kmp_initialize_info()

static void __kmp_initialize_info ( kmp_info_t this_thr,
kmp_team_t team,
int  tid,
int  gtid 
)
static

◆ __kmp_initialize_root()

static void __kmp_initialize_root ( kmp_root_t root)
static

◆ __kmp_initialize_team()

static void __kmp_initialize_team ( kmp_team_t team,
int  new_nproc,
kmp_internal_control_t new_icvs,
ident_t loc 
)
static

◆ __kmp_internal_begin()

void __kmp_internal_begin ( void  )

◆ __kmp_internal_end()

static void __kmp_internal_end ( void  )
static

◆ __kmp_internal_end_atexit()

void __kmp_internal_end_atexit ( void  )

◆ __kmp_internal_end_dest()

void __kmp_internal_end_dest ( void specific_gtid)

Definition at line 6054 of file kmp_runtime.cpp.

References __kmp_internal_end_thread(), __kmp_type_convert(), and KA_TRACE.

Referenced by __kmp_runtime_initialize().

◆ __kmp_internal_end_library()

void __kmp_internal_end_library ( int  gtid_req)

◆ __kmp_internal_end_thread()

void __kmp_internal_end_thread ( int  gtid_req)

◆ __kmp_internal_fork()

void __kmp_internal_fork ( ident_t id,
int  gtid,
kmp_team_t team 
)

◆ __kmp_internal_join()

void __kmp_internal_join ( ident_t id,
int  gtid,
kmp_team_t team 
)

◆ __kmp_invoke_task_func()

int __kmp_invoke_task_func ( int  gtid)

◆ __kmp_invoke_teams_master()

int __kmp_invoke_teams_master ( int  gtid)

◆ __kmp_is_entering_teams()

static bool __kmp_is_entering_teams ( int  active_level,
int  level,
int  teams_level,
kmp_va_list  ap 
)
inlinestatic

Definition at line 1425 of file kmp_runtime.cpp.

References level.

Referenced by __kmp_fork_call().

◆ __kmp_is_fork_in_teams()

static bool __kmp_is_fork_in_teams ( kmp_info_t master_th,
microtask_t  microtask,
int  level,
int  teams_level,
kmp_va_list  ap 
)
inlinestatic

Definition at line 1416 of file kmp_runtime.cpp.

References __kmp_teams_master(), level, and microtask().

Referenced by __kmp_fork_call().

◆ __kmp_itt_fini_ittlib()

void __kmp_itt_fini_ittlib ( )

Definition at line 9282 of file kmp_runtime.cpp.

◆ __kmp_itt_init_ittlib()

void __kmp_itt_init_ittlib ( )

Definition at line 9283 of file kmp_runtime.cpp.

◆ __kmp_itthash_clean()

static void __kmp_itthash_clean ( kmp_info_t th)
static

Definition at line 6223 of file kmp_runtime.cpp.

References __kmp_thread_free, and i.

Referenced by __kmp_internal_end_library().

◆ __kmp_join_barrier()

void __kmp_join_barrier ( int  gtid)

◆ __kmp_join_call()

void __kmp_join_call ( ident_t loc,
int  gtid,
int  exit_teams 
)

◆ __kmp_launch_thread()

void * __kmp_launch_thread ( kmp_info_t this_thr)

◆ __kmp_middle_initialize()

void __kmp_middle_initialize ( void  )

◆ __kmp_omp_display_env()

void __kmp_omp_display_env ( int  verbose)

◆ __kmp_parallel_deo()

void __kmp_parallel_deo ( int gtid_ref,
int cid_ref,
ident_t loc_ref 
)

◆ __kmp_parallel_dxo()

void __kmp_parallel_dxo ( int gtid_ref,
int cid_ref,
ident_t loc_ref 
)

◆ __kmp_parallel_initialize()

void __kmp_parallel_initialize ( void  )

◆ __kmp_pause_resource()

int __kmp_pause_resource ( kmp_pause_status_t  level)

◆ __kmp_print_storage_map_gtid()

void __kmp_print_storage_map_gtid ( int  gtid,
void p1,
void p2,
size_t  size,
char const *  format,
  ... 
)

◆ __kmp_print_team_storage_map()

static void __kmp_print_team_storage_map ( const char header,
kmp_team_t team,
int  team_id,
int  num_thr 
)
static

◆ __kmp_print_thread_storage_map()

static void __kmp_print_thread_storage_map ( kmp_info_t thr,
int  gtid 
)
static

◆ __kmp_push_num_teams()

void __kmp_push_num_teams ( ident_t id,
int  gtid,
int  num_teams,
int  num_threads 
)

◆ __kmp_push_num_teams_51()

void __kmp_push_num_teams_51 ( ident_t id,
int  gtid,
int  num_teams_lb,
int  num_teams_ub,
int  num_threads 
)

◆ __kmp_push_num_threads()

void __kmp_push_num_threads ( ident_t id,
int  gtid,
int  num_threads 
)

Definition at line 7778 of file kmp_runtime.cpp.

References __kmp_threads.

Referenced by __kmp_GOMP_fork_call(), and __kmpc_push_num_threads().

◆ __kmp_push_proc_bind()

void __kmp_push_proc_bind ( ident_t id,
int  gtid,
kmp_proc_bind_t  proc_bind 
)

Definition at line 7941 of file kmp_runtime.cpp.

References __kmp_threads.

Referenced by __kmp_GOMP_fork_call(), and __kmpc_push_proc_bind().

◆ __kmp_push_thread_limit()

static void __kmp_push_thread_limit ( kmp_info_t thr,
int  num_teams,
int  num_threads 
)
static

◆ __kmp_reallocate_team_arrays()

static void __kmp_reallocate_team_arrays ( kmp_team_t team,
int  max_nth 
)
static

Definition at line 3226 of file kmp_runtime.cpp.

References __kmp_allocate_team_arrays(), __kmp_free, KMP_MEMCPY, and kmp_team::t.

Referenced by __kmp_allocate_team().

◆ __kmp_reap_team()

kmp_team_t * __kmp_reap_team ( kmp_team_t team)

◆ __kmp_reap_thread()

static void __kmp_reap_thread ( kmp_info_t thread,
int  is_root 
)
static

◆ __kmp_reg_status_name()

static char * __kmp_reg_status_name ( )
inlinestatic

Definition at line 6643 of file kmp_runtime.cpp.

References __kmp_str_format().

Referenced by __kmp_register_library_startup(), and __kmp_unregister_library().

◆ __kmp_register_library_startup()

void __kmp_register_library_startup ( void  )

◆ __kmp_register_root()

int __kmp_register_root ( int  initial_thread)

Definition at line 3744 of file kmp_runtime.cpp.

References __kmp_acquire_bootstrap_lock(), __kmp_adjust_gtid_mode, __kmp_all_nth, __kmp_allocate, __kmp_allocate_cons_stack(), __kmp_allocate_team(), __kmp_avail_proc, __kmp_cg_max_nth, __kmp_create_worker(), __kmp_def_allocator, __kmp_enable_hidden_helper, __kmp_env_blocktime, __kmp_env_consistency_check, __kmp_expand_threads(), __kmp_fatal(), __kmp_forkjoin_lock, __kmp_get_global_icvs(), __kmp_gtid_from_tid(), __kmp_gtid_get_specific(), __kmp_gtid_mode, __kmp_gtid_set_specific(), __kmp_hidden_helper_threads_num, __kmp_init_gtid, __kmp_init_hidden_helper_threads, __kmp_init_random(), __kmp_initialize_bget(), __kmp_initialize_info(), __kmp_initialize_root(), __kmp_msg_null, __kmp_nth, __kmp_print_thread_storage_map(), __kmp_release_bootstrap_lock(), __kmp_root, __kmp_root_counter, __kmp_stksize, __kmp_storage_map, __kmp_threads, __kmp_threads_capacity, __kmp_tls_gtid_min, __kmp_tp_cached, __kmp_tp_capacity, __ompt_get_task_info_internal(), __ompt_get_thread_data_internal(), b, bs_forkjoin_barrier, bs_last_barrier, kmp_cg_root::cg_nthreads, kmp_cg_root::cg_root, kmp_cg_root::cg_thread_limit, ompt_callbacks_active_s::enabled, KA_TRACE, KF_TRACE, KMP_ASSERT, KMP_DEBUG_ASSERT, KMP_HNT, KMP_INIT_BARRIER_STATE, KMP_INIT_PARTITIONED_TIMERS, KMP_MB, KMP_MSG, KMP_SET_THREAD_STATE, ompt_callbacks, ompt_enabled, proc_bind_default, TCR_4, TCR_PTR, TCW_4, TCW_SYNC_PTR, TRUE, kmp_cg_root::up, and USE_NESTED_HOT_ARG.

Referenced by __kmp_do_serial_initialize(), __kmp_get_global_thread_id_reg(), and __kmp_hidden_helper_threads_initz_routine().

◆ __kmp_reinitialize_team()

static void __kmp_reinitialize_team ( kmp_team_t team,
kmp_internal_control_t new_icvs,
ident_t loc 
)
static

◆ __kmp_reserve_threads()

static int __kmp_reserve_threads ( kmp_root_t root,
kmp_team_t parent_team,
int  master_tid,
int  set_nthreads,
int  enter_teams 
)
static

◆ __kmp_reset_root()

static int __kmp_reset_root ( int  gtid,
kmp_root_t root 
)
static

◆ __kmp_reset_stats()

void __kmp_reset_stats ( )

Definition at line 9275 of file kmp_runtime.cpp.

◆ __kmp_resize_dist_barrier()

void __kmp_resize_dist_barrier ( kmp_team_t team,
int  old_nthreads,
int  new_nthreads 
)

◆ __kmp_resume_if_soft_paused()

void __kmp_resume_if_soft_paused ( )

◆ __kmp_run_after_invoked_task()

void __kmp_run_after_invoked_task ( int  gtid,
int  tid,
kmp_info_t this_thr,
kmp_team_t team 
)

◆ __kmp_run_before_invoked_task()

void __kmp_run_before_invoked_task ( int  gtid,
int  tid,
kmp_info_t this_thr,
kmp_team_t team 
)

◆ __kmp_save_internal_controls()

void __kmp_save_internal_controls ( kmp_info_t thread)

◆ __kmp_serial_fork_call()

static int __kmp_serial_fork_call ( ident_t loc,
int  gtid,
enum fork_context_e  call_context,
kmp_int32  argc,
microtask_t  microtask,
launch_t  invoker,
kmp_info_t master_th,
kmp_team_t parent_team,
kmp_va_list  ap 
)
inlinestatic

◆ __kmp_serial_initialize()

void __kmp_serial_initialize ( void  )

◆ __kmp_serialized_parallel()

void __kmp_serialized_parallel ( ident_t loc,
kmp_int32  global_tid 
)

◆ __kmp_set_max_active_levels()

void __kmp_set_max_active_levels ( int  gtid,
int  max_active_levels 
)

◆ __kmp_set_nesting_mode_threads()

void __kmp_set_nesting_mode_threads ( )

◆ __kmp_set_num_teams()

void __kmp_set_num_teams ( int  num_teams)

Definition at line 2871 of file kmp_runtime.cpp.

References __kmp_nteams.

Referenced by FTN_SET_NUM_TEAMS().

◆ __kmp_set_num_threads()

void __kmp_set_num_threads ( int  new_nth,
int  gtid 
)

◆ __kmp_set_schedule()

void __kmp_set_schedule ( int  gtid,
kmp_sched_t  kind,
int  chunk 
)

◆ __kmp_set_teams_thread_limit()

void __kmp_set_teams_thread_limit ( int  limit)

Definition at line 2877 of file kmp_runtime.cpp.

References __kmp_teams_thread_limit.

Referenced by FTN_SET_TEAMS_THREAD_LIMIT().

◆ __kmp_setup_icv_copy()

void __kmp_setup_icv_copy ( kmp_team_t team,
int  new_nproc,
kmp_internal_control_t new_icvs,
ident_t loc 
)

◆ __kmp_soft_pause()

void __kmp_soft_pause ( )

Definition at line 8960 of file kmp_runtime.cpp.

References __kmp_pause_status, and kmp_soft_paused.

Referenced by __kmp_pause_resource().

◆ __kmp_teams_master()

void __kmp_teams_master ( int  gtid)

◆ __kmp_unregister_library()

void __kmp_unregister_library ( void  )

◆ __kmp_unregister_root_current_thread()

void __kmp_unregister_root_current_thread ( int  gtid)

◆ __kmp_user_set_library()

void __kmp_user_set_library ( enum library_type  arg)

◆ __kmp_warn()

void __kmp_warn ( char const *  format,
  ... 
)

◆ KMP_BUILD_ASSERT() [1/2]

KMP_BUILD_ASSERT ( sizeof(enum sched_type = =sizeof(int))

◆ KMP_BUILD_ASSERT() [2/2]

KMP_BUILD_ASSERT ( sizeof(kmp_sched_t = =sizeof(int))

Variable Documentation

◆ __kmp_affinity_format_table

const kmp_affinity_format_field_t __kmp_affinity_format_table[]
static
Initial value:
= {
{'t', "team_num", 'd'},
{'T', "num_teams", 'd'},
{'L', "nesting_level", 'd'},
{'n', "thread_num", 'd'},
{'N', "num_threads", 'd'},
{'a', "ancestor_tnum", 'd'},
{'H', "host", 's'},
{'P', "process_id", 'd'},
{'i', "native_thread_id", 'd'}}

Definition at line 8502 of file kmp_runtime.cpp.

Referenced by __kmp_aux_capture_affinity_field().

◆ __kmp_debugging

int __kmp_debugging = FALSE

Definition at line 9279 of file kmp_runtime.cpp.

Referenced by __kmp_fork_in_teams().

◆ __kmp_enable_hidden_helper

kmp_int32 __kmp_enable_hidden_helper = FALSE

◆ __kmp_hidden_helper_main_thread

kmp_info_t* __kmp_hidden_helper_main_thread

◆ __kmp_hidden_helper_threads

kmp_info_t** __kmp_hidden_helper_threads

◆ __kmp_hidden_helper_threads_num

kmp_int32 __kmp_hidden_helper_threads_num = 0

◆ __kmp_omp_debug_struct_info

int __kmp_omp_debug_struct_info = FALSE

Definition at line 9278 of file kmp_runtime.cpp.

◆ __kmp_primes

const unsigned __kmp_primes[]
static
Initial value:
= {
0x9e3779b1, 0xffe6cc59, 0x2109f6dd, 0x43977ab5, 0xba5703f5, 0xb495a877,
0xe1626741, 0x79695e6b, 0xbc98c09f, 0xd5bee2b3, 0x287488f9, 0x3af18231,
0x9677cd4d, 0xbe3a6929, 0xadc6a877, 0xdcf0674b, 0xbe4d6fe9, 0x5f15e201,
0x99afc3fd, 0xf3f16801, 0xe222cfff, 0x24ba5fdb, 0x0620452d, 0x79f149e3,
0xc8b93f49, 0x972702cd, 0xb07dd827, 0x6c97d5ed, 0x085a3d61, 0x46eb5ea7,
0x3d9910ed, 0x2e687b5b, 0x29609227, 0x6eb081f1, 0x0954c4e1, 0x9d114db9,
0x542acfa9, 0xb3e6bd7b, 0x0742d917, 0xe9f3ffa7, 0x54581edb, 0xf2480f45,
0x0bb9288f, 0xef1affc7, 0x85fa0ca7, 0x3ccc14db, 0xe6baf34b, 0x343377f7,
0x5ca19031, 0xe6d9293b, 0xf0a9f391, 0x5d2e980b, 0xfc411073, 0xc3749363,
0xb892d829, 0x3549366b, 0x629750ad, 0xb98294e5, 0x892d9483, 0xc235baf3,
0x3d2402a3, 0x6bdef3c9, 0xbec333cd, 0x40c9520f}

Definition at line 3576 of file kmp_runtime.cpp.

Referenced by __kmp_init_random().

◆ __kmp_registration_flag

long __kmp_registration_flag = 0
static

Definition at line 6638 of file kmp_runtime.cpp.

Referenced by __kmp_register_library_startup(), and __kmp_unregister_library().

◆ __kmp_registration_str

char* __kmp_registration_str = NULL
static

Definition at line 6640 of file kmp_runtime.cpp.

Referenced by __kmp_register_library_startup(), and __kmp_unregister_library().

◆ __kmp_thread_pool_insert_pt

kmp_info_t* __kmp_thread_pool_insert_pt = NULL

◆ __kmp_unexecuted_hidden_helper_tasks

std::atomic<kmp_int32> __kmp_unexecuted_hidden_helper_tasks

◆ __kmp_version_omp_api

char const __kmp_version_omp_api[]
Initial value:
=
KMP_VERSION_PREFIX "API version: 5.0 (201611)"
#define KMP_VERSION_PREFIX
Definition: kmp_version.h:34

Definition at line 66 of file kmp_runtime.cpp.

Referenced by __kmp_print_version_1().