LLVM OpenMP 19.0.0git
Classes | Macros | Functions
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)   ((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
 

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 1124 of file kmp_barrier.cpp.

◆ ngo_load

#define ngo_load (   src)    ((void)0)

Definition at line 34 of file kmp_barrier.cpp.

◆ ngo_store_go

#define ngo_store_go (   dst,
  src 
)    KMP_MEMCPY((dst), (src), CACHE_LINE)

Definition at line 36 of file kmp_barrier.cpp.

◆ ngo_store_icvs

#define ngo_store_icvs (   dst,
  src 
)    copy_icvs((dst), (src))

Definition at line 35 of file kmp_barrier.cpp.

◆ ngo_sync

#define ngo_sync ( )    ((void)0)

Definition at line 37 of file kmp_barrier.cpp.

Function Documentation

◆ __kmp_barrier()

int __kmp_barrier ( enum barrier_type  bt,
int  gtid,
int  is_split,
size_t  reduce_size,
void reduce_data,
void(*)(void *, void *)  reduce 
)

◆ __kmp_barrier_template()

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(*)(void *, void *)  reduce 
)
static

◆ __kmp_dist_barrier_gather()

static void __kmp_dist_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_dist_barrier_release()

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_ARGvoid *itt_sync_obj 
)
static

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

void __kmp_end_split_barrier ( enum barrier_type  bt,
int  gtid 
)

◆ __kmp_fork_barrier()

void __kmp_fork_barrier ( int  gtid,
int  tid 
)

◆ __kmp_hierarchical_barrier_gather()

static void __kmp_hierarchical_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_hierarchical_barrier_release()

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_ARGvoid *itt_sync_obj 
)
static

◆ __kmp_hyper_barrier_gather()

static void __kmp_hyper_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_hyper_barrier_release()

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_ARGvoid *itt_sync_obj 
)
static

◆ __kmp_init_hierarchical_barrier_thread()

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

◆ __kmp_join_barrier()

void __kmp_join_barrier ( int  gtid)

◆ __kmp_linear_barrier_gather()

static 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

Definition at line 765 of file kmp_barrier.cpp.

References USE_ITT_BUILD_ARG.

Referenced by __kmp_barrier_template(), and __kmp_join_barrier().

◆ __kmp_linear_barrier_gather_cancellable()

static 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 772 of file kmp_barrier.cpp.

References USE_ITT_BUILD_ARG.

Referenced by __kmp_barrier_template().

◆ __kmp_linear_barrier_gather_template()

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(*)(void *, void *) USE_ITT_BUILD_ARG reduce(void *itt_sync_obj)   
)
static

◆ __kmp_linear_barrier_release()

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_ARGvoid *itt_sync_obj 
)
static

◆ __kmp_linear_barrier_release_cancellable()

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_ARGvoid *itt_sync_obj 
)
static

Definition at line 786 of file kmp_barrier.cpp.

References USE_ITT_BUILD_ARG.

Referenced by __kmp_barrier_template().

◆ __kmp_linear_barrier_release_template()

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_ARGvoid *itt_sync_obj 
)
static

◆ __kmp_print_structure()

void __kmp_print_structure ( void  )

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

static void __kmp_tree_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_tree_barrier_release()

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_ARGvoid *itt_sync_obj 
)
static