LLVM OpenMP 20.0.0git
Macros | Enumerations | Functions | Variables
kmp_taskdeps.cpp File Reference
#include "kmp.h"
#include "kmp_io.h"
#include "kmp_wait_release.h"
#include "kmp_taskdeps.h"

Go to the source code of this file.

Macros

#define NO_DEP_BARRIER   (false)
 
#define DEP_BARRIER   (true)
 

Enumerations

enum  { KMP_DEPHASH_OTHER_SIZE = 97 , KMP_DEPHASH_MASTER_SIZE = 997 }
 

Functions

static void __kmp_init_node (kmp_depnode_t *node)
 
static kmp_depnode_t__kmp_node_ref (kmp_depnode_t *node)
 
static size_t __kmp_dephash_hash (kmp_intptr_t addr, size_t hsize)
 
static kmp_dephash_t__kmp_dephash_extend (kmp_info_t *thread, kmp_dephash_t *current_dephash)
 
static kmp_dephash_t__kmp_dephash_create (kmp_info_t *thread, kmp_taskdata_t *current_task)
 
static kmp_dephash_entry__kmp_dephash_find (kmp_info_t *thread, kmp_dephash_t **hash, kmp_intptr_t addr)
 
static kmp_depnode_list_t__kmp_add_node (kmp_info_t *thread, kmp_depnode_list_t *list, kmp_depnode_t *node)
 
static void __kmp_track_dependence (kmp_int32 gtid, kmp_depnode_t *source, kmp_depnode_t *sink, kmp_task_t *sink_task)
 
kmp_base_depnode_t__kmpc_task_get_depnode (kmp_task_t *task)
 
kmp_depnode_list_t__kmpc_task_get_successors (kmp_task_t *task)
 
static kmp_int32 __kmp_depnode_link_successor (kmp_int32 gtid, kmp_info_t *thread, kmp_task_t *task, kmp_depnode_t *node, kmp_depnode_list_t *plist)
 
static kmp_int32 __kmp_depnode_link_successor (kmp_int32 gtid, kmp_info_t *thread, kmp_task_t *task, kmp_depnode_t *source, kmp_depnode_t *sink)
 
static kmp_int32 __kmp_process_dep_all (kmp_int32 gtid, kmp_depnode_t *node, kmp_dephash_t *h, bool dep_barrier, kmp_task_t *task)
 
template<bool filter>
static kmp_int32 __kmp_process_deps (kmp_int32 gtid, kmp_depnode_t *node, kmp_dephash_t **hash, bool dep_barrier, kmp_int32 ndeps, kmp_depend_info_t *dep_list, kmp_task_t *task)
 
static bool __kmp_check_deps (kmp_int32 gtid, kmp_depnode_t *node, kmp_task_t *task, kmp_dephash_t **hash, bool dep_barrier, kmp_int32 ndeps, kmp_depend_info_t *dep_list, kmp_int32 ndeps_noalias, kmp_depend_info_t *noalias_dep_list)
 
kmp_int32 __kmpc_omp_task_with_deps (ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *new_task, kmp_int32 ndeps, kmp_depend_info_t *dep_list, kmp_int32 ndeps_noalias, kmp_depend_info_t *noalias_dep_list)
 
void __kmpc_omp_wait_deps (ident_t *loc_ref, kmp_int32 gtid, kmp_int32 ndeps, kmp_depend_info_t *dep_list, kmp_int32 ndeps_noalias, kmp_depend_info_t *noalias_dep_list)
 
void __kmpc_omp_taskwait_deps_51 (ident_t *loc_ref, kmp_int32 gtid, kmp_int32 ndeps, kmp_depend_info_t *dep_list, kmp_int32 ndeps_noalias, kmp_depend_info_t *noalias_dep_list, kmp_int32 has_no_wait)
 

Variables

size_t sizes [] = {997, 2003, 4001, 8191, 16001, 32003, 64007, 131071, 270029}
 
const size_t MAX_GEN = 8
 

Macro Definition Documentation

◆ DEP_BARRIER

#define DEP_BARRIER   (true)

Definition at line 568 of file kmp_taskdeps.cpp.

◆ NO_DEP_BARRIER

#define NO_DEP_BARRIER   (false)

Definition at line 567 of file kmp_taskdeps.cpp.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
KMP_DEPHASH_OTHER_SIZE 
KMP_DEPHASH_MASTER_SIZE 

Definition at line 58 of file kmp_taskdeps.cpp.

Function Documentation

◆ __kmp_add_node()

static kmp_depnode_list_t * __kmp_add_node ( kmp_info_t thread,
kmp_depnode_list_t list,
kmp_depnode_t node 
)
static

◆ __kmp_check_deps()

static bool __kmp_check_deps ( kmp_int32  gtid,
kmp_depnode_t node,
kmp_task_t task,
kmp_dephash_t **  hash,
bool  dep_barrier,
kmp_int32  ndeps,
kmp_depend_info_t dep_list,
kmp_int32  ndeps_noalias,
kmp_depend_info_t noalias_dep_list 
)
static

◆ __kmp_dephash_create()

static kmp_dephash_t * __kmp_dephash_create ( kmp_info_t thread,
kmp_taskdata_t current_task 
)
static

◆ __kmp_dephash_extend()

static kmp_dephash_t * __kmp_dephash_extend ( kmp_info_t thread,
kmp_dephash_t current_dephash 
)
static

◆ __kmp_dephash_find()

static kmp_dephash_entry * __kmp_dephash_find ( kmp_info_t thread,
kmp_dephash_t **  hash,
kmp_intptr_t  addr 
)
static

◆ __kmp_dephash_hash()

static size_t __kmp_dephash_hash ( kmp_intptr_t  addr,
size_t  hsize 
)
inlinestatic

Definition at line 63 of file kmp_taskdeps.cpp.

References addr.

Referenced by __kmp_dephash_extend(), and __kmp_dephash_find().

◆ __kmp_depnode_link_successor() [1/2]

static kmp_int32 __kmp_depnode_link_successor ( kmp_int32  gtid,
kmp_info_t thread,
kmp_task_t task,
kmp_depnode_t node,
kmp_depnode_list_t plist 
)
inlinestatic

◆ __kmp_depnode_link_successor() [2/2]

static kmp_int32 __kmp_depnode_link_successor ( kmp_int32  gtid,
kmp_info_t thread,
kmp_task_t task,
kmp_depnode_t source,
kmp_depnode_t sink 
)
inlinestatic

◆ __kmp_init_node()

static void __kmp_init_node ( kmp_depnode_t node)
static

◆ __kmp_node_ref()

static kmp_depnode_t * __kmp_node_ref ( kmp_depnode_t node)
inlinestatic

◆ __kmp_process_dep_all()

static kmp_int32 __kmp_process_dep_all ( kmp_int32  gtid,
kmp_depnode_t node,
kmp_dephash_t h,
bool  dep_barrier,
kmp_task_t task 
)
inlinestatic

◆ __kmp_process_deps()

template<bool filter>
static kmp_int32 __kmp_process_deps ( kmp_int32  gtid,
kmp_depnode_t node,
kmp_dephash_t **  hash,
bool  dep_barrier,
kmp_int32  ndeps,
kmp_depend_info_t dep_list,
kmp_task_t task 
)
inlinestatic

◆ __kmp_track_dependence()

static void __kmp_track_dependence ( kmp_int32  gtid,
kmp_depnode_t source,
kmp_depnode_t sink,
kmp_task_t sink_task 
)
inlinestatic

◆ __kmpc_omp_taskwait_deps_51()

void __kmpc_omp_taskwait_deps_51 ( ident_t loc_ref,
kmp_int32  gtid,
kmp_int32  ndeps,
kmp_depend_info_t dep_list,
kmp_int32  ndeps_noalias,
kmp_depend_info_t noalias_dep_list,
kmp_int32  has_no_wait 
)

◆ __kmpc_task_get_depnode()

kmp_base_depnode_t * __kmpc_task_get_depnode ( kmp_task_t task)

Definition at line 287 of file kmp_taskdeps.cpp.

References kmp_depnode::dn, KMP_TASK_TO_TASKDATA, and kmp_taskdata::td_depnode.

Referenced by main().

◆ __kmpc_task_get_successors()

kmp_depnode_list_t * __kmpc_task_get_successors ( kmp_task_t task)

Variable Documentation

◆ MAX_GEN

const size_t MAX_GEN = 8

Definition at line 61 of file kmp_taskdeps.cpp.

Referenced by __kmp_dephash_extend().

◆ sizes

size_t sizes[] = {997, 2003, 4001, 8191, 16001, 32003, 64007, 131071, 270029}

Definition at line 60 of file kmp_taskdeps.cpp.

Referenced by __kmp_dephash_extend(), and main().