LLVM OpenMP 20.0.0git
|
#include "kmp_wait_release.h"
#include "kmp_barrier.h"
#include "kmp_itt.h"
#include "kmp_os.h"
#include "kmp_stats.h"
#include "ompt-specific.h"
#include "kmp_affinity.h"
Go to the source code of this file.
Classes | |
struct | is_cancellable< cancellable > |
struct | is_cancellable< true > |
struct | is_cancellable< false > |
Macros | |
#define | ngo_load(src) ((void)0) |
#define | ngo_store_icvs(dst, src) copy_icvs((dst), (src)) |
#define | ngo_store_go(dst, src) KMP_MEMCPY((dst), (src), CACHE_LINE) |
#define | ngo_sync() ((void)0) |
#define | KMP_REVERSE_HYPER_BAR |
#define KMP_REVERSE_HYPER_BAR |
Definition at line 1125 of file kmp_barrier.cpp.
#define ngo_load | ( | src | ) | ((void)0) |
Definition at line 34 of file kmp_barrier.cpp.
#define ngo_store_go | ( | dst, | |
src | |||
) | KMP_MEMCPY((dst), (src), CACHE_LINE) |
Definition at line 36 of file kmp_barrier.cpp.
#define ngo_store_icvs | ( | dst, | |
src | |||
) | copy_icvs((dst), (src)) |
Definition at line 35 of file kmp_barrier.cpp.
#define ngo_sync | ( | ) | ((void)0) |
Definition at line 37 of file kmp_barrier.cpp.
int __kmp_barrier | ( | enum barrier_type | bt, |
int | gtid, | ||
int | is_split, | ||
size_t | reduce_size, | ||
void * | reduce_data, | ||
void(*)(void *, void *) | reduce | ||
) |
Definition at line 2100 of file kmp_barrier.cpp.
Referenced by __kmp_dispatch_init_hierarchy(), __kmpc_barrier(), __kmpc_barrier_master(), __kmpc_barrier_master_nowait(), __kmpc_copyprivate(), __kmpc_copyprivate_light(), __kmpc_end_reduce(), __kmpc_reduce(), __kmpc_reduce_nowait(), KMP_API_NAME_GOMP_SINGLE_COPY_END(), and KMP_API_NAME_GOMP_SINGLE_COPY_START().
|
static |
Definition at line 1768 of file kmp_barrier.cpp.
References __kmp_barrier_gather_branch_bits, __kmp_barrier_gather_pattern, __kmp_barrier_release_branch_bits, __kmp_barrier_release_pattern, __kmp_dflt_blocktime, __kmp_dist_barrier_gather(), __kmp_dist_barrier_release(), __kmp_hierarchical_barrier_gather(), __kmp_hierarchical_barrier_release(), __kmp_hyper_barrier_gather(), __kmp_hyper_barrier_release(), __kmp_linear_barrier_gather(), __kmp_linear_barrier_gather_cancellable(), __kmp_linear_barrier_release(), __kmp_linear_barrier_release_cancellable(), __kmp_omp_cancellation, __kmp_task_team_setup(), __kmp_task_team_sync(), __kmp_task_team_wait(), __kmp_tasking_barrier(), __kmp_tasking_mode, __kmp_team_from_gtid(), __kmp_threads, __kmp_tid_from_gtid(), __kmp_tree_barrier_gather(), __kmp_tree_barrier_release(), __ompt_get_barrier_kind(), bp_dist_bar, bp_hierarchical_bar, bp_hyper_bar, bp_tree_bar, cancel_loop, cancel_noreq, cancel_sections, ompt_callbacks_active_s::enabled, FALSE, i, KA_TRACE, KMP_ASSERT, KMP_ATOMIC_LD_RLX, KMP_ATOMIC_ST_RLX, KMP_BLOCKTIME_INTERVAL, KMP_DEBUG_ASSERT, KMP_MASTER_TID, KMP_MAX_BLOCKTIME, KMP_MB, KMP_SET_THREAD_STATE_BLOCK, KMP_TIME_PARTITIONED_BLOCK, loc, ompt_callbacks, ompt_enabled, status, kmp_team::t, TRUE, tskm_extra_barrier, tskm_immediate_exec, and USE_ITT_BUILD_ARG.
|
static |
Definition at line 226 of file kmp_barrier.cpp.
References __kmp_abort_thread(), __kmp_atomic_execute_tasks_64(), __kmp_global, __kmp_tasking_mode, b, FALSE, KA_TRACE, KMP_MASTER_TID, KMP_MFENCE, KMP_NOT_SAFE_TO_REAP, KMP_SAFE_TO_REAP, KMP_TASKING_ENABLED, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, distributedBarrier::MAX_ITERS, OMPT_REDUCTION_BEGIN, OMPT_REDUCTION_DECL, OMPT_REDUCTION_END, kmp_team::t, TCR_4, TCR_SYNC_4, tskm_immediate_exec, kmp_task_team::tt, kmp_base_task_team::tt_active, and USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template(), and __kmp_join_barrier().
|
static |
Definition at line 375 of file kmp_barrier.cpp.
References __kmp_dflt_blocktime, __kmp_dist_barrier_wakeup(), __kmp_global, __kmp_init_implicit_task(), __kmp_tid_from_gtid(), b, bs_forkjoin_barrier, copy_icvs(), FALSE, KA_TRACE, KMP_ASSERT, KMP_COMPARE_AND_STORE_ACQ32, KMP_DEBUG_ASSERT, KMP_MASTER_TID, KMP_MAX_BLOCKTIME, KMP_MFENCE, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, distributedBarrier::MAX_ITERS, kmp_team::t, TCR_4, USE_ITT_BUILD_ARG, void, kmp_flag_32< Cancellable, Sleepable >::wait(), and kmp_atomic_flag_64< Cancellable, Sleepable >::wait().
Referenced by __kmp_barrier_template(), __kmp_end_split_barrier(), and __kmp_fork_barrier().
void __kmp_dist_barrier_wakeup | ( | enum barrier_type | bt, |
kmp_team_t * | team, | ||
size_t | start, | ||
size_t | stop, | ||
size_t | inc, | ||
size_t | tid | ||
) |
Definition at line 210 of file kmp_barrier.cpp.
References __kmp_atomic_resume_64(), __kmp_dflt_blocktime, __kmp_global, bs_forkjoin_barrier, KMP_DEBUG_ASSERT, KMP_MAX_BLOCKTIME, stop(), kmp_team::t, and TCR_4.
Referenced by __kmp_dist_barrier_release().
void __kmp_end_split_barrier | ( | enum barrier_type | bt, |
int | gtid | ||
) |
Definition at line 2131 of file kmp_barrier.cpp.
References __kmp_barrier_release_branch_bits, __kmp_barrier_release_pattern, __kmp_dist_barrier_release(), __kmp_hierarchical_barrier_release(), __kmp_hyper_barrier_release(), __kmp_linear_barrier_release(), __kmp_task_team_sync(), __kmp_tasking_mode, __kmp_threads, __kmp_tid_from_gtid(), __kmp_tree_barrier_release(), bp_dist_bar, bp_hierarchical_bar, bp_hyper_bar, bp_tree_bar, bs_last_barrier, FALSE, KMP_ASSERT, KMP_DEBUG_ASSERT, KMP_MASTER_GTID, KMP_SET_THREAD_STATE_BLOCK, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, kmp_team::t, tskm_immediate_exec, and USE_ITT_BUILD_ARG.
Referenced by __kmpc_end_barrier_master(), and __kmpc_end_reduce().
Definition at line 2418 of file kmp_barrier.cpp.
References __kmp_aux_display_affinity(), __kmp_barrier_release_branch_bits, __kmp_barrier_release_pattern, __kmp_dflt_blocktime, __kmp_display_affinity, __kmp_dist_barrier_release(), __kmp_global, __kmp_gtid_from_thread(), __kmp_hierarchical_barrier_release(), __kmp_hyper_barrier_release(), __kmp_init_implicit_task(), __kmp_linear_barrier_release(), __kmp_task_team_setup(), __kmp_task_team_sync(), __kmp_tasking_mode, __kmp_threads, __kmp_tid_from_gtid(), __kmp_tree_barrier_release(), bp_dist_bar, bp_hierarchical_bar, bp_hyper_bar, bp_tree_bar, bs_forkjoin_barrier, copy_icvs(), ompt_callbacks_active_s::enabled, FALSE, i, if(), KA_TRACE, KMP_AFFINITY_SUPPORTED, KMP_ASSERT, KMP_BARRIER_SLEEP_STATE, KMP_BLOCKTIME_INTERVAL, KMP_CHECK_UPDATE, KMP_DEBUG_ASSERT, KMP_INIT_BARRIER_STATE, KMP_MASTER_TID, KMP_MAX_BLOCKTIME, KMP_MB, KMP_SET_THREAD_STATE_BLOCK, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, KMP_TIME_PARTITIONED_BLOCK, ompt_callbacks, ompt_enabled, proc_bind_false, proc_bind_intel, kmp_team::t, TCR_4, TCR_PTR, TRUE, tskm_immediate_exec, and USE_ITT_BUILD_ARG.
Referenced by __kmp_internal_fork(), and __kmp_launch_thread().
|
static |
Definition at line 1358 of file kmp_barrier.cpp.
References __kmp_dflt_blocktime, __kmp_gtid_from_tid(), __kmp_init_hierarchical_barrier_thread(), d, FALSE, flag, if(), int, KA_TRACE, KMP_BARRIER_STATE_BUMP, KMP_DEBUG_ASSERT, KMP_MASTER_TID, KMP_MAX_BLOCKTIME, KMP_TEST_THEN_AND64, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, level, OMPT_REDUCTION_BEGIN, OMPT_REDUCTION_DECL, OMPT_REDUCTION_END, kmp_team::t, USE_ITT_BUILD_ARG, and void.
Referenced by __kmp_barrier_template(), and __kmp_join_barrier().
|
static |
Definition at line 1527 of file kmp_barrier.cpp.
References __kmp_dflt_blocktime, __kmp_global, __kmp_gtid_from_tid(), __kmp_init_hierarchical_barrier_thread(), __kmp_init_implicit_task(), __kmp_teams_master(), __kmp_threads, __kmp_tid_from_gtid(), bs_forkjoin_barrier, copy_icvs(), d, FALSE, flag, int, KA_TRACE, KMP_BARRIER_NOT_WAITING, KMP_BARRIER_OWN_FLAG, KMP_BARRIER_PARENT_FLAG, KMP_BARRIER_STATE_BUMP, KMP_BARRIER_SWITCHING, KMP_DEBUG_ASSERT, KMP_INIT_BARRIER_STATE, KMP_MASTER_TID, KMP_MAX_BLOCKTIME, KMP_MB, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, level, ngo_load, ngo_store_go, ngo_sync, RCAST, kmp_team::t, TCR_4, TCW_8, TRUE, and USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template(), __kmp_end_split_barrier(), and __kmp_fork_barrier().
|
static |
Definition at line 1007 of file kmp_barrier.cpp.
References __kmp_barrier_gather_branch_bits, __kmp_gtid_from_tid(), FALSE, KA_TRACE, KMP_BARRIER_STATE_BUMP, KMP_BARRIER_UNUSED_STATE, KMP_CACHE_PREFETCH, KMP_DEBUG_ASSERT, KMP_MASTER_TID, KMP_MB, KMP_MIN, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, level, OMPT_REDUCTION_BEGIN, OMPT_REDUCTION_DECL, OMPT_REDUCTION_END, kmp_flag_64< Cancellable, Sleepable >::release(), kmp_flag< FlagType >::set_waiter(), kmp_team::t, USE_ITT_BUILD_ARG, and kmp_flag_64< Cancellable, Sleepable >::wait().
Referenced by __kmp_barrier_template(), and __kmp_join_barrier().
|
static |
Definition at line 1126 of file kmp_barrier.cpp.
References __kmp_barrier_release_branch_bits, __kmp_global, __kmp_gtid_from_tid(), __kmp_init_implicit_task(), __kmp_threads, __kmp_tid_from_gtid(), bs_forkjoin_barrier, copy_icvs(), FALSE, flag, KA_TRACE, KMP_BARRIER_STATE_BUMP, KMP_CACHE_PREFETCH, KMP_DEBUG_ASSERT, KMP_INIT_BARRIER_STATE, KMP_MASTER_TID, KMP_MB, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, level, kmp_team::t, TCR_4, TCW_4, TRUE, and USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template(), __kmp_end_split_barrier(), and __kmp_fork_barrier().
|
static |
Definition at line 1291 of file kmp_barrier.cpp.
References __kmp_get_hierarchy(), __kmp_type_convert(), d, i, KMP_BARRIER_NOT_WAITING, KMP_MASTER_TID, and kmp_team::t.
Referenced by __kmp_hierarchical_barrier_gather(), and __kmp_hierarchical_barrier_release().
Definition at line 2176 of file kmp_barrier.cpp.
References __kmp_barrier_gather_branch_bits, __kmp_barrier_gather_pattern, __kmp_dflt_blocktime, __kmp_display_affinity, __kmp_dist_barrier_gather(), __kmp_gtid_from_thread(), __kmp_hierarchical_barrier_gather(), __kmp_hyper_barrier_gather(), __kmp_linear_barrier_gather(), __kmp_null_resume_wrapper(), __kmp_print_structure(), __kmp_task_team_wait(), __kmp_tasking_barrier(), __kmp_tasking_mode, __kmp_threads, __kmp_tid_from_gtid(), __kmp_tree_barrier_gather(), bp_dist_bar, bp_hierarchical_bar, bp_hyper_bar, bp_tree_bar, bs_forkjoin_barrier, ompt_callbacks_active_s::enabled, i, KA_TRACE, KMP_ASSERT, KMP_BLOCKTIME_INTERVAL, KMP_CHECK_UPDATE, KMP_DEBUG_ASSERT, KMP_DEBUG_ASSERT_TASKTEAM_INVARIANT, KMP_MASTER_TID, KMP_MAX_BLOCKTIME, KMP_MB, KMP_SET_THREAD_STATE_BLOCK, KMP_TIME_PARTITIONED_BLOCK, loc, ompt_callbacks, ompt_enabled, kmp_team::t, TCR_PTR, tskm_extra_barrier, tskm_immediate_exec, and USE_ITT_BUILD_ARG.
Referenced by __kmp_internal_join(), and __kmp_launch_thread().
|
static |
Definition at line 766 of file kmp_barrier.cpp.
References USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template(), and __kmp_join_barrier().
|
static |
Definition at line 773 of file kmp_barrier.cpp.
References USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template().
|
static |
Definition at line 557 of file kmp_barrier.cpp.
References __kmp_gtid_from_tid(), kmp_barrier_team_union::b_arrived, FALSE, flag, i, KA_TRACE, KMP_BARRIER_STATE_BUMP, KMP_CACHE_PREFETCH, KMP_DEBUG_ASSERT, KMP_MASTER_TID, KMP_MIN, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, OMPT_REDUCTION_BEGIN, OMPT_REDUCTION_DECL, OMPT_REDUCTION_END, kmp_team::t, and USE_ITT_BUILD_ARG.
|
static |
Definition at line 780 of file kmp_barrier.cpp.
References USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template(), __kmp_end_split_barrier(), and __kmp_fork_barrier().
|
static |
Definition at line 787 of file kmp_barrier.cpp.
References USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template().
|
static |
Definition at line 659 of file kmp_barrier.cpp.
References __kmp_global, __kmp_init_implicit_task(), __kmp_threads, __kmp_tid_from_gtid(), bs_forkjoin_barrier, FALSE, flag, i, KA_TRACE, KMP_BARRIER_STATE_BUMP, KMP_CACHE_PREFETCH, KMP_DEBUG_ASSERT, KMP_INIT_BARRIER_STATE, KMP_MASTER_TID, KMP_MB, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, ngo_load, ngo_store_icvs, ngo_sync, kmp_team::t, TCR_4, TCW_4, TRUE, and USE_ITT_BUILD_ARG.
Referenced by __kmp_internal_join(), and __kmp_join_barrier().
void __kmp_setup_icv_copy | ( | kmp_team_t * | team, |
int | new_nproc, | ||
kmp_internal_control_t * | new_icvs, | ||
ident_t * | loc | ||
) |
Definition at line 2648 of file kmp_barrier.cpp.
References __kmp_init_implicit_task(), __kmp_init_parallel, bs_forkjoin_barrier, copy_icvs(), f(), FALSE, KF_TRACE, KMP_DEBUG_ASSERT, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, loc, ngo_load, ngo_store_icvs, ngo_sync, kmp_internal_control::nproc, kmp_team::t, and TCR_4.
Referenced by __kmp_fork_call().
|
static |
Definition at line 795 of file kmp_barrier.cpp.
References __kmp_barrier_gather_branch_bits, __kmp_gtid_from_tid(), FALSE, flag, KA_TRACE, KMP_BARRIER_STATE_BUMP, KMP_CACHE_PREFETCH, KMP_DEBUG_ASSERT, KMP_MASTER_TID, KMP_MIN, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, OMPT_REDUCTION_BEGIN, OMPT_REDUCTION_DECL, OMPT_REDUCTION_END, kmp_team::t, and USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template(), and __kmp_join_barrier().
|
static |
Definition at line 901 of file kmp_barrier.cpp.
References __kmp_barrier_release_branch_bits, __kmp_global, __kmp_gtid_from_tid(), __kmp_init_implicit_task(), __kmp_threads, __kmp_tid_from_gtid(), bs_forkjoin_barrier, copy_icvs(), FALSE, flag, KA_TRACE, KMP_BARRIER_STATE_BUMP, KMP_CACHE_PREFETCH, KMP_DEBUG_ASSERT, KMP_INIT_BARRIER_STATE, KMP_MASTER_TID, KMP_MB, KMP_TIME_DEVELOPER_PARTITIONED_BLOCK, kmp_team::t, TCR_4, TCW_4, TRUE, and USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template(), __kmp_end_split_barrier(), and __kmp_fork_barrier().