LLVM OpenMP 22.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) |
#define | ngo_store_icvs(dst, src) |
#define | ngo_store_go(dst, src) |
#define | ngo_sync() |
#define | KMP_REVERSE_HYPER_BAR |
#define KMP_REVERSE_HYPER_BAR |
Definition at line 1150 of file kmp_barrier.cpp.
#define ngo_load | ( | src | ) |
Definition at line 34 of file kmp_barrier.cpp.
Referenced by __kmp_hierarchical_barrier_release(), __kmp_linear_barrier_release_template(), and __kmp_setup_icv_copy().
#define ngo_store_go | ( | dst, | |
src ) |
Definition at line 36 of file kmp_barrier.cpp.
Referenced by __kmp_hierarchical_barrier_release().
#define ngo_store_icvs | ( | dst, | |
src ) |
Definition at line 35 of file kmp_barrier.cpp.
Referenced by __kmp_linear_barrier_release_template(), and __kmp_setup_icv_copy().
#define ngo_sync | ( | ) |
Definition at line 37 of file kmp_barrier.cpp.
Referenced by __kmp_hierarchical_barrier_release(), __kmp_linear_barrier_release_template(), and __kmp_setup_icv_copy().
int __kmp_barrier | ( | enum barrier_type | bt, |
int | gtid, | ||
int | is_split, | ||
size_t | reduce_size, | ||
void * | reduce_data, | ||
void(* | reduce )(void *, void *) ) |
Definition at line 2129 of file kmp_barrier.cpp.
References __kmp_barrier_template().
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 1793 of file kmp_barrier.cpp.
References __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, 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_TASKDATA_TO_TASK, KMP_TIME_PARTITIONED_BLOCK, loc, ompt_callbacks, ompt_enabled, status, kmp_team::t, TRUE, tskm_extra_barrier, tskm_immediate_exec, UNLIKELY, and USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier().
|
static |
Definition at line 251 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, kmp_uint32, 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 400 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_atomic_flag_64< Cancellable, Sleepable >::wait(), and kmp_flag_32< 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 235 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 2160 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 2445 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(), FALSE, i, 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 1383 of file kmp_barrier.cpp.
References __kmp_dflt_blocktime, __kmp_gtid_from_tid(), __kmp_init_hierarchical_barrier_thread(), d, FALSE, flag, 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, kmp_uint32, 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 1552 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, kmp_uint32, 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 1032 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, kmp_uint32, 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 1151 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_uint32, 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 1316 of file kmp_barrier.cpp.
References __kmp_get_hierarchy(), __kmp_type_convert(), d, i, KMP_BARRIER_NOT_WAITING, KMP_MASTER_TID, kmp_uint32, and kmp_team::t.
Referenced by __kmp_hierarchical_barrier_gather(), and __kmp_hierarchical_barrier_release().
Definition at line 2205 of file kmp_barrier.cpp.
References __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, i, KA_TRACE, 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 791 of file kmp_barrier.cpp.
References __kmp_linear_barrier_gather_template(), and USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template(), and __kmp_join_barrier().
|
static |
Definition at line 798 of file kmp_barrier.cpp.
References __kmp_linear_barrier_gather_template(), and USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template().
|
static |
Definition at line 582 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.
Referenced by __kmp_linear_barrier_gather(), and __kmp_linear_barrier_gather_cancellable().
|
static |
Definition at line 805 of file kmp_barrier.cpp.
References __kmp_linear_barrier_release_template(), and USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template(), __kmp_end_split_barrier(), and __kmp_fork_barrier().
|
static |
Definition at line 812 of file kmp_barrier.cpp.
References __kmp_linear_barrier_release_template(), and USE_ITT_BUILD_ARG.
Referenced by __kmp_barrier_template().
|
static |
Definition at line 684 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, kmp_uint32, ngo_load, ngo_store_icvs, ngo_sync, kmp_team::t, TCR_4, TCW_4, TRUE, and USE_ITT_BUILD_ARG.
Referenced by __kmp_linear_barrier_release(), and __kmp_linear_barrier_release_cancellable().
References __kmp_topology, KMP_HW_CORE, KMP_HW_SOCKET, and KMP_OPTIMIZE_FOR_REDUCTIONS.
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 2675 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 820 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, kmp_uint32, 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 926 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_uint32, 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().