LLVM OpenMP 22.0.0git
kmp_barrier.cpp File Reference
#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

Functions

void __kmp_print_structure (void)
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)
static void __kmp_dist_barrier_gather (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, void(*reduce)(void *, void *) USE_ITT_BUILD_ARG(void *itt_sync_obj))
static void __kmp_dist_barrier_release (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, int propagate_icvs USE_ITT_BUILD_ARG(void *itt_sync_obj))
template<bool cancellable = false>
static bool __kmp_linear_barrier_gather_template (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, void(*reduce)(void *, void *) USE_ITT_BUILD_ARG(void *itt_sync_obj))
template<bool cancellable = false>
static bool __kmp_linear_barrier_release_template (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, int propagate_icvs USE_ITT_BUILD_ARG(void *itt_sync_obj))
static void __kmp_linear_barrier_gather (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, void(*reduce)(void *, void *) USE_ITT_BUILD_ARG(void *itt_sync_obj))
static bool __kmp_linear_barrier_gather_cancellable (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, void(*reduce)(void *, void *) USE_ITT_BUILD_ARG(void *itt_sync_obj))
static void __kmp_linear_barrier_release (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, int propagate_icvs USE_ITT_BUILD_ARG(void *itt_sync_obj))
static bool __kmp_linear_barrier_release_cancellable (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, int propagate_icvs USE_ITT_BUILD_ARG(void *itt_sync_obj))
static void __kmp_tree_barrier_gather (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, void(*reduce)(void *, void *) USE_ITT_BUILD_ARG(void *itt_sync_obj))
static void __kmp_tree_barrier_release (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, int propagate_icvs USE_ITT_BUILD_ARG(void *itt_sync_obj))
static void __kmp_hyper_barrier_gather (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, void(*reduce)(void *, void *) USE_ITT_BUILD_ARG(void *itt_sync_obj))
static void __kmp_hyper_barrier_release (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, int propagate_icvs USE_ITT_BUILD_ARG(void *itt_sync_obj))
static bool __kmp_init_hierarchical_barrier_thread (enum barrier_type bt, kmp_bstate_t *thr_bar, kmp_uint32 nproc, int gtid, int tid, kmp_team_t *team)
static void __kmp_hierarchical_barrier_gather (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, void(*reduce)(void *, void *) USE_ITT_BUILD_ARG(void *itt_sync_obj))
static void __kmp_hierarchical_barrier_release (enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid, int propagate_icvs USE_ITT_BUILD_ARG(void *itt_sync_obj))
template<bool cancellable = false>
static int __kmp_barrier_template (enum barrier_type bt, int gtid, int is_split, size_t reduce_size, void *reduce_data, void(*reduce)(void *, void *))
int __kmp_barrier (enum barrier_type bt, int gtid, int is_split, size_t reduce_size, void *reduce_data, void(*reduce)(void *, void *))
void __kmp_end_split_barrier (enum barrier_type bt, int gtid)
void __kmp_join_barrier (int gtid)
void __kmp_fork_barrier (int gtid, int tid)
void __kmp_setup_icv_copy (kmp_team_t *team, int new_nproc, kmp_internal_control_t *new_icvs, ident_t *loc)

Macro Definition Documentation

◆ KMP_REVERSE_HYPER_BAR

#define KMP_REVERSE_HYPER_BAR

Definition at line 1150 of file kmp_barrier.cpp.

◆ ngo_load

#define ngo_load ( src)

◆ ngo_store_go

#define ngo_store_go ( dst,
src )
Value:
KMP_MEMCPY((dst), (src), CACHE_LINE)
#define CACHE_LINE
Definition kmp_os.h:340
#define KMP_MEMCPY

Definition at line 36 of file kmp_barrier.cpp.

Referenced by __kmp_hierarchical_barrier_release().

◆ ngo_store_icvs

#define ngo_store_icvs ( dst,
src )
Value:
copy_icvs((dst), (src))
static void copy_icvs(kmp_internal_control_t *dst, kmp_internal_control_t *src)
Definition kmp.h:2214

Definition at line 35 of file kmp_barrier.cpp.

Referenced by __kmp_linear_barrier_release_template(), and __kmp_setup_icv_copy().

◆ ngo_sync

#define ngo_sync ( )

Function Documentation

◆ __kmp_barrier()

◆ __kmp_barrier_template()

template<bool cancellable = false>
int __kmp_barrier_template ( enum barrier_type bt,
int gtid,
int is_split,
size_t reduce_size,
void * reduce_data,
void(* reduce )(void *, void *) )
static

◆ __kmp_dist_barrier_gather()

◆ __kmp_dist_barrier_release()

◆ __kmp_dist_barrier_wakeup()

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 )

◆ __kmp_end_split_barrier()

◆ __kmp_fork_barrier()

◆ __kmp_hierarchical_barrier_gather()

◆ __kmp_hierarchical_barrier_release()

◆ __kmp_hyper_barrier_gather()

◆ __kmp_hyper_barrier_release()

◆ __kmp_init_hierarchical_barrier_thread()

bool __kmp_init_hierarchical_barrier_thread ( enum barrier_type bt,
kmp_bstate_t * thr_bar,
kmp_uint32 nproc,
int gtid,
int tid,
kmp_team_t * team )
static

◆ __kmp_join_barrier()

◆ __kmp_linear_barrier_gather()

void __kmp_linear_barrier_gather ( enum barrier_type bt,
kmp_info_t * this_thr,
int gtid,
int tid,
void(*  )(void *, void *) USE_ITT_BUILD_ARG reduce(void *itt_sync_obj) )
static

◆ __kmp_linear_barrier_gather_cancellable()

bool __kmp_linear_barrier_gather_cancellable ( enum barrier_type bt,
kmp_info_t * this_thr,
int gtid,
int tid,
void(*  )(void *, void *) USE_ITT_BUILD_ARG reduce(void *itt_sync_obj) )
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().

◆ __kmp_linear_barrier_gather_template()

◆ __kmp_linear_barrier_release()

void __kmp_linear_barrier_release ( enum barrier_type bt,
kmp_info_t * this_thr,
int gtid,
int tid,
int propagate_icvs USE_ITT_BUILD_ARGvoid *itt_sync_obj )
static

◆ __kmp_linear_barrier_release_cancellable()

bool __kmp_linear_barrier_release_cancellable ( enum barrier_type bt,
kmp_info_t * this_thr,
int gtid,
int tid,
int propagate_icvs USE_ITT_BUILD_ARGvoid *itt_sync_obj )
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().

◆ __kmp_linear_barrier_release_template()

◆ __kmp_print_structure()

◆ __kmp_setup_icv_copy()

◆ __kmp_tree_barrier_gather()

◆ __kmp_tree_barrier_release()