LLVM OpenMP 22.0.0git
kmp_dispatch_hier.h File Reference
#include "kmp.h"
#include "kmp_dispatch.h"

Go to the source code of this file.

Classes

struct  kmp_hier_sched_env_t
struct  kmp_hier_shared_bdata_t< T >
class  core_barrier_impl< T >
class  counter_barrier_impl< T >
struct  kmp_hier_top_unit_t< T >
struct  kmp_hier_layer_info_t< T >
struct  kmp_hier_t< T >

Typedefs

typedef struct kmp_hier_sched_env_t kmp_hier_sched_env_t

Enumerations

enum  kmp_hier_layer_e {
  LAYER_THREAD = -1 , LAYER_L1 , LAYER_L2 , LAYER_L3 ,
  LAYER_NUMA , LAYER_LOOP , LAYER_LAST
}

Functions

static const char__kmp_get_hier_str (kmp_hier_layer_e type)
int __kmp_dispatch_get_index (int tid, kmp_hier_layer_e type)
int __kmp_dispatch_get_id (int gtid, kmp_hier_layer_e type)
int __kmp_dispatch_get_t1_per_t2 (kmp_hier_layer_e t1, kmp_hier_layer_e t2)
void __kmp_dispatch_free_hierarchies (kmp_team_t *team)
template<typename T>
void __kmp_dispatch_init_hierarchy (ident_t *loc, int n, kmp_hier_layer_e *new_layers, enum sched_type *new_scheds, typename traits_t< T >::signed_t *new_chunks, T lb, T ub, typename traits_t< T >::signed_t st)

Variables

int __kmp_dispatch_hand_threading
kmp_hier_sched_env_t __kmp_hier_scheds
int __kmp_hier_max_units [kmp_hier_layer_e::LAYER_LAST+1]
int __kmp_hier_threads_per [kmp_hier_layer_e::LAYER_LAST+1]

Typedef Documentation

◆ kmp_hier_sched_env_t

typedef struct kmp_hier_sched_env_t kmp_hier_sched_env_t

Enumeration Type Documentation

◆ kmp_hier_layer_e

Enumerator
LAYER_THREAD 
LAYER_L1 
LAYER_L2 
LAYER_L3 
LAYER_NUMA 
LAYER_LOOP 
LAYER_LAST 

Definition at line 19 of file kmp_dispatch_hier.h.

Function Documentation

◆ __kmp_dispatch_free_hierarchies()

void __kmp_dispatch_free_hierarchies ( kmp_team_t * team)
extern

Referenced by __kmp_free_team_arrays().

◆ __kmp_dispatch_get_id()

int __kmp_dispatch_get_id ( int gtid,
kmp_hier_layer_e type )
extern

References type.

◆ __kmp_dispatch_get_index()

int __kmp_dispatch_get_index ( int tid,
kmp_hier_layer_e type )
extern

References type.

Referenced by __kmp_dispatch_init_hierarchy().

◆ __kmp_dispatch_get_t1_per_t2()

int __kmp_dispatch_get_t1_per_t2 ( kmp_hier_layer_e t1,
kmp_hier_layer_e t2 )
extern

◆ __kmp_dispatch_init_hierarchy()

template<typename T>
void __kmp_dispatch_init_hierarchy ( ident_t * loc,
int n,
kmp_hier_layer_e * new_layers,
enum sched_type * new_scheds,
typename traits_t< T >::signed_t * new_chunks,
T lb,
T ub,
typename traits_t< T >::signed_t st )

Definition at line 920 of file kmp_dispatch_hier.h.

References __kmp_allocate, __kmp_barrier(), __kmp_dispatch_get_index(), __kmp_dispatch_get_t1_per_t2(), __kmp_dispatch_init_algorithm(), __kmp_dispatch_num_buffers, __kmp_entry_gtid, __kmp_get_hier_str(), __kmp_hier_max_units, __kmp_init_parallel, __kmp_parallel_initialize(), __kmp_resume_if_soft_paused(), __kmp_threads, __kmp_tid_from_gtid(), kmp_hier_top_unit_t< T >::active, bs_plain_barrier, kmp_sched_flags::contains_last, FALSE, dispatch_private_info_template< T >::flags, kmp_hier_t< T >::get_chunk(), kmp_hier_top_unit_t< T >::get_hier_id(), kmp_hier_top_unit_t< T >::get_my_pr(), kmp_hier_t< T >::get_num_active(), kmp_hier_top_unit_t< T >::get_parent(), kmp_hier_t< T >::get_sched(), kmp_hier_t< T >::get_type(), kmp_hier_t< T >::get_unit(), kmp_hier_top_unit_t< T >::hier_parent, kmp_hier_top_unit_t< T >::hier_pr, i, kmp_hier_t< T >::info, kmp_hier_top_unit_t< T >::is_active(), dispatch_shared_infoXX_template< T >::iteration, KD_TRACE, KMP_COMPARE_AND_STORE_ACQ32, KMP_DEBUG_ASSERT, KMP_TEST_THEN_INC32, LAYER_LAST, LAYER_LOOP, LAYER_THREAD, loc, dispatch_private_info_template< T >::private_info_tmpl::p, kmp_hier_top_unit_t< T >::reset_private_barrier(), kmp_hier_top_unit_t< T >::reset_shared_barrier(), dispatch_shared_info_template< T >::shared_info_tmpl::s, kmp_team::t, TCR_4, kmp_hier_t< T >::top_level_nproc, TRUE, dispatch_private_info_template< T >::u, dispatch_shared_info_template< T >::u, and kmp_sched_flags::use_hier.

◆ __kmp_get_hier_str()

const char * __kmp_get_hier_str ( kmp_hier_layer_e type)
inlinestatic

Variable Documentation

◆ __kmp_dispatch_hand_threading

int __kmp_dispatch_hand_threading
extern

Referenced by kmp_hier_t< T >::next().

◆ __kmp_hier_max_units

◆ __kmp_hier_scheds

◆ __kmp_hier_threads_per

int __kmp_hier_threads_per[kmp_hier_layer_e::LAYER_LAST+1]
extern