LLVM OpenMP 20.0.0git
Classes | Macros | Typedefs | Functions | Variables
kmp_tasking.cpp File Reference
#include "kmp.h"
#include "kmp_i18n.h"
#include "kmp_itt.h"
#include "kmp_stats.h"
#include "kmp_wait_release.h"
#include "kmp_taskdeps.h"

Go to the source code of this file.

Classes

struct  kmp_taskred_flags
 Flags for special info per task reduction item. More...
 
struct  kmp_task_red_input
 Internal struct for reduction data item related info set up by compiler. More...
 
struct  kmp_taskred_data
 Internal struct for reduction data item related info saved by the library. More...
 
struct  kmp_taskred_input
 Internal struct for reduction data item related info set up by compiler. More...
 
class  kmp_taskloop_bounds_t
 
struct  __taskloop_params
 

Macros

#define PROXY_TASK_FLAG   0x40000000
 

Typedefs

typedef void(* p_task_dup_t) (kmp_task_t *, kmp_task_t *, kmp_int32)
 
typedef struct __taskloop_params __taskloop_params_t
 
typedef struct kmp_taskred_flags kmp_taskred_flags_t
 Flags for special info per task reduction item.
 
typedef struct kmp_task_red_input kmp_task_red_input_t
 Internal struct for reduction data item related info set up by compiler.
 
typedef struct kmp_taskred_data kmp_taskred_data_t
 Internal struct for reduction data item related info saved by the library.
 
typedef struct kmp_taskred_input kmp_taskred_input_t
 Internal struct for reduction data item related info set up by compiler.
 

Functions

static void __kmp_enable_tasking (kmp_task_team_t *task_team, kmp_info_t *this_thr)
 
static void __kmp_alloc_task_deque (kmp_info_t *thread, kmp_thread_data_t *thread_data)
 
static int __kmp_realloc_task_threads_data (kmp_info_t *thread, kmp_task_team_t *task_team)
 
static void __kmp_bottom_half_finish_proxy (kmp_int32 gtid, kmp_task_t *ptask)
 
static bool __kmp_task_is_allowed (int gtid, const kmp_int32 is_constrained, const kmp_taskdata_t *tasknew, const kmp_taskdata_t *taskcurr)
 
static void __kmp_realloc_task_deque (kmp_info_t *thread, kmp_thread_data_t *thread_data)
 
static kmp_task_pri_t__kmp_alloc_task_pri_list ()
 
static kmp_thread_data_t__kmp_get_priority_deque_data (kmp_task_team_t *task_team, kmp_int32 pri)
 
static kmp_int32 __kmp_push_priority_task (kmp_int32 gtid, kmp_info_t *thread, kmp_taskdata_t *taskdata, kmp_task_team_t *task_team, kmp_int32 pri)
 
static kmp_int32 __kmp_push_task (kmp_int32 gtid, kmp_task_t *task)
 
void __kmp_pop_current_task_from_thread (kmp_info_t *this_thr)
 
void __kmp_push_current_task_to_thread (kmp_info_t *this_thr, kmp_team_t *team, int tid)
 
static void __kmp_task_start (kmp_int32 gtid, kmp_task_t *task, kmp_taskdata_t *current_task)
 
template<bool ompt>
static void __kmpc_omp_task_begin_if0_template (ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *task, void *frame_address, void *return_address)
 
void __kmpc_omp_task_begin_if0 (ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *task)
 
static void __kmp_free_task (kmp_int32 gtid, kmp_taskdata_t *taskdata, kmp_info_t *thread)
 
static void __kmp_free_task_and_ancestors (kmp_int32 gtid, kmp_taskdata_t *taskdata, kmp_info_t *thread)
 
static bool __kmp_track_children_task (kmp_taskdata_t *taskdata)
 
template<bool ompt>
static void __kmp_task_finish (kmp_int32 gtid, kmp_task_t *task, kmp_taskdata_t *resumed_task)
 
template<bool ompt>
static void __kmpc_omp_task_complete_if0_template (ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *task)
 
void __kmpc_omp_task_complete_if0 (ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *task)
 
void __kmp_init_implicit_task (ident_t *loc_ref, kmp_info_t *this_thr, kmp_team_t *team, int tid, int set_curr_task)
 
void __kmp_finish_implicit_task (kmp_info_t *thread)
 
void __kmp_free_implicit_task (kmp_info_t *thread)
 
static size_t __kmp_round_up_to_val (size_t size, size_t val)
 
kmp_task_t__kmp_task_alloc (ident_t *loc_ref, kmp_int32 gtid, kmp_tasking_flags_t *flags, size_t sizeof_kmp_task_t, size_t sizeof_shareds, kmp_routine_entry_t task_entry)
 
kmp_task_t__kmpc_omp_task_alloc (ident_t *loc_ref, kmp_int32 gtid, kmp_int32 flags, size_t sizeof_kmp_task_t, size_t sizeof_shareds, kmp_routine_entry_t task_entry)
 
kmp_task_t__kmpc_omp_target_task_alloc (ident_t *loc_ref, kmp_int32 gtid, kmp_int32 flags, size_t sizeof_kmp_task_t, size_t sizeof_shareds, kmp_routine_entry_t task_entry, kmp_int64 device_id)
 
kmp_int32 __kmpc_omp_reg_task_with_affinity (ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *new_task, kmp_int32 naffins, kmp_task_affinity_info_t *affin_list)
 
static void __kmp_invoke_task (kmp_int32 gtid, kmp_task_t *task, kmp_taskdata_t *current_task)
 
kmp_int32 __kmpc_omp_task_parts (ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *new_task)
 
kmp_int32 __kmp_omp_task (kmp_int32 gtid, kmp_task_t *new_task, bool serialize_immediate)
 
kmp_int32 __kmpc_omp_task (ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *new_task)
 
kmp_int32 __kmp_omp_taskloop_task (ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *new_task, void *codeptr_ra)
 
template<bool ompt>
static kmp_int32 __kmpc_omp_taskwait_template (ident_t *loc_ref, kmp_int32 gtid, void *frame_address, void *return_address)
 
kmp_int32 __kmpc_omp_taskwait (ident_t *loc_ref, kmp_int32 gtid)
 
kmp_int32 __kmpc_omp_taskyield (ident_t *loc_ref, kmp_int32 gtid, int end_part)
 
template<typename T >
void __kmp_assign_orig (kmp_taskred_data_t &item, T &src)
 
template<>
void __kmp_assign_orig< kmp_task_red_input_t > (kmp_taskred_data_t &item, kmp_task_red_input_t &src)
 
template<>
void __kmp_assign_orig< kmp_taskred_input_t > (kmp_taskred_data_t &item, kmp_taskred_input_t &src)
 
template<typename T >
void __kmp_call_init (kmp_taskred_data_t &item, size_t j)
 
template<>
void __kmp_call_init< kmp_task_red_input_t > (kmp_taskred_data_t &item, size_t offset)
 
template<>
void __kmp_call_init< kmp_taskred_input_t > (kmp_taskred_data_t &item, size_t offset)
 
template<typename T >
void__kmp_task_reduction_init (int gtid, int num, T *data)
 
void__kmpc_task_reduction_init (int gtid, int num, void *data)
 
void__kmpc_taskred_init (int gtid, int num, void *data)
 
template<typename T >
void __kmp_task_reduction_init_copy (kmp_info_t *thr, int num, T *data, kmp_taskgroup_t *tg, void *reduce_data)
 
void__kmpc_task_reduction_get_th_data (int gtid, void *tskgrp, void *data)
 
static void __kmp_task_reduction_fini (kmp_info_t *th, kmp_taskgroup_t *tg)
 
static void __kmp_task_reduction_clean (kmp_info_t *th, kmp_taskgroup_t *tg)
 
template<typename T >
void__kmp_task_reduction_modifier_init (ident_t *loc, int gtid, int is_ws, int num, T *data)
 
void__kmpc_task_reduction_modifier_init (ident_t *loc, int gtid, int is_ws, int num, void *data)
 
void__kmpc_taskred_modifier_init (ident_t *loc, int gtid, int is_ws, int num, void *data)
 
void __kmpc_task_reduction_modifier_fini (ident_t *loc, int gtid, int is_ws)
 
void __kmpc_taskgroup (ident_t *loc, int gtid)
 
void __kmpc_end_taskgroup (ident_t *loc, int gtid)
 
static kmp_task_t__kmp_get_priority_task (kmp_int32 gtid, kmp_task_team_t *task_team, kmp_int32 is_constrained)
 
static kmp_task_t__kmp_remove_my_task (kmp_info_t *thread, kmp_int32 gtid, kmp_task_team_t *task_team, kmp_int32 is_constrained)
 
static kmp_task_t__kmp_steal_task (kmp_int32 victim_tid, kmp_int32 gtid, kmp_task_team_t *task_team, std::atomic< kmp_int32 > *unfinished_threads, int *thread_finished, kmp_int32 is_constrained)
 
template<class C >
static int __kmp_execute_tasks_template (kmp_info_t *thread, kmp_int32 gtid, C *flag, int final_spin, int *thread_finished USE_ITT_BUILD_ARG(void *itt_sync_obj), kmp_int32 is_constrained)
 
template<bool C, bool S>
int __kmp_execute_tasks_32 (kmp_info_t *thread, kmp_int32 gtid, kmp_flag_32< C, S > *flag, int final_spin, int *thread_finished USE_ITT_BUILD_ARG(void *itt_sync_obj), kmp_int32 is_constrained)
 
template<bool C, bool S>
int __kmp_execute_tasks_64 (kmp_info_t *thread, kmp_int32 gtid, kmp_flag_64< C, S > *flag, int final_spin, int *thread_finished USE_ITT_BUILD_ARG(void *itt_sync_obj), kmp_int32 is_constrained)
 
template<bool C, bool S>
int __kmp_atomic_execute_tasks_64 (kmp_info_t *thread, kmp_int32 gtid, kmp_atomic_flag_64< C, S > *flag, int final_spin, int *thread_finished USE_ITT_BUILD_ARG(void *itt_sync_obj), kmp_int32 is_constrained)
 
int __kmp_execute_tasks_oncore (kmp_info_t *thread, kmp_int32 gtid, kmp_flag_oncore *flag, int final_spin, int *thread_finished USE_ITT_BUILD_ARG(void *itt_sync_obj), kmp_int32 is_constrained)
 
template int __kmp_execute_tasks_32< false, false > (kmp_info_t *, kmp_int32, kmp_flag_32< false, false > *, int, int *USE_ITT_BUILD_ARG(void *), kmp_int32)
 
template int __kmp_execute_tasks_64< false, true > (kmp_info_t *, kmp_int32, kmp_flag_64< false, true > *, int, int *USE_ITT_BUILD_ARG(void *), kmp_int32)
 
template int __kmp_execute_tasks_64< true, false > (kmp_info_t *, kmp_int32, kmp_flag_64< true, false > *, int, int *USE_ITT_BUILD_ARG(void *), kmp_int32)
 
template int __kmp_atomic_execute_tasks_64< false, true > (kmp_info_t *, kmp_int32, kmp_atomic_flag_64< false, true > *, int, int *USE_ITT_BUILD_ARG(void *), kmp_int32)
 
template int __kmp_atomic_execute_tasks_64< true, false > (kmp_info_t *, kmp_int32, kmp_atomic_flag_64< true, false > *, int, int *USE_ITT_BUILD_ARG(void *), kmp_int32)
 
static void __kmp_free_task_deque (kmp_thread_data_t *thread_data)
 
static void __kmp_free_task_threads_data (kmp_task_team_t *task_team)
 
static void __kmp_free_task_pri_list (kmp_task_team_t *task_team)
 
static void __kmp_task_team_init (kmp_task_team_t *task_team, kmp_team_t *team)
 
static kmp_task_team_t__kmp_allocate_task_team (kmp_info_t *thread, kmp_team_t *team)
 
void __kmp_free_task_team (kmp_info_t *thread, kmp_task_team_t *task_team)
 
void __kmp_reap_task_teams (void)
 
void __kmp_push_task_team_node (kmp_info_t *thread, kmp_team_t *team)
 
void __kmp_pop_task_team_node (kmp_info_t *thread, kmp_team_t *team)
 
void __kmp_wait_to_unref_task_teams (void)
 
void __kmp_task_team_setup (kmp_info_t *this_thr, kmp_team_t *team)
 
void __kmp_task_team_sync (kmp_info_t *this_thr, kmp_team_t *team)
 
void __kmp_task_team_wait (kmp_info_t *this_thr, kmp_team_t *team USE_ITT_BUILD_ARG(void *itt_sync_obj), int wait)
 
void __kmp_tasking_barrier (kmp_team_t *team, kmp_info_t *thread, int gtid)
 
static bool __kmp_give_task (kmp_info_t *thread, kmp_int32 tid, kmp_task_t *task, kmp_int32 pass)
 
static void __kmp_first_top_half_finish_proxy (kmp_taskdata_t *taskdata)
 
static void __kmp_second_top_half_finish_proxy (kmp_taskdata_t *taskdata)
 
void __kmpc_proxy_task_completed (kmp_int32 gtid, kmp_task_t *ptask)
 
void __kmpc_give_task (kmp_task_t *ptask, kmp_int32 start=0)
 
void __kmpc_proxy_task_completed_ooo (kmp_task_t *ptask)
 
kmp_event_t__kmpc_task_allow_completion_event (ident_t *loc_ref, int gtid, kmp_task_t *task)
 
void __kmp_fulfill_event (kmp_event_t *event)
 
kmp_task_t__kmp_task_dup_alloc (kmp_info_t *thread, kmp_task_t *task_src)
 
 KMP_BUILD_ASSERT (sizeof(long)==4||sizeof(long)==8)
 
void __kmp_taskloop_linear (ident_t *loc, int gtid, kmp_task_t *task, kmp_uint64 *lb, kmp_uint64 *ub, kmp_int64 st, kmp_uint64 ub_glob, kmp_uint64 num_tasks, kmp_uint64 grainsize, kmp_uint64 extras, kmp_int64 last_chunk, kmp_uint64 tc, void *task_dup)
 
void __kmp_taskloop_recur (ident_t *, int, kmp_task_t *, kmp_uint64 *, kmp_uint64 *, kmp_int64, kmp_uint64, kmp_uint64, kmp_uint64, kmp_uint64, kmp_int64, kmp_uint64, kmp_uint64, void *)
 
int __kmp_taskloop_task (int gtid, void *ptask)
 
static void __kmp_taskloop (ident_t *loc, int gtid, kmp_task_t *task, int if_val, kmp_uint64 *lb, kmp_uint64 *ub, kmp_int64 st, int nogroup, int sched, kmp_uint64 grainsize, int modifier, void *task_dup)
 
void __kmpc_taskloop (ident_t *loc, int gtid, kmp_task_t *task, int if_val, kmp_uint64 *lb, kmp_uint64 *ub, kmp_int64 st, int nogroup, int sched, kmp_uint64 grainsize, void *task_dup)
 
void __kmpc_taskloop_5 (ident_t *loc, int gtid, kmp_task_t *task, int if_val, kmp_uint64 *lb, kmp_uint64 *ub, kmp_int64 st, int nogroup, int sched, kmp_uint64 grainsize, int modifier, void *task_dup)
 
void ** __kmpc_omp_get_target_async_handle_ptr (kmp_int32 gtid)
 
bool __kmpc_omp_has_task_team (kmp_int32 gtid)
 

Variables

static kmp_task_team_t__kmp_free_task_teams
 
kmp_bootstrap_lock_t __kmp_task_team_lock
 

Macro Definition Documentation

◆ PROXY_TASK_FLAG

#define PROXY_TASK_FLAG   0x40000000

Definition at line 4439 of file kmp_tasking.cpp.

Typedef Documentation

◆ __taskloop_params_t

◆ p_task_dup_t

typedef void(* p_task_dup_t) (kmp_task_t *, kmp_task_t *, kmp_int32)

Definition at line 4749 of file kmp_tasking.cpp.

Function Documentation

◆ __kmp_alloc_task_deque()

static void __kmp_alloc_task_deque ( kmp_info_t thread,
kmp_thread_data_t thread_data 
)
static

◆ __kmp_alloc_task_pri_list()

static kmp_task_pri_t * __kmp_alloc_task_pri_list ( )
static

◆ __kmp_allocate_task_team()

static kmp_task_team_t * __kmp_allocate_task_team ( kmp_info_t thread,
kmp_team_t team 
)
static

◆ __kmp_assign_orig()

template<typename T >
void __kmp_assign_orig ( kmp_taskred_data_t item,
T &  src 
)

◆ __kmp_assign_orig< kmp_task_red_input_t >()

Definition at line 2497 of file kmp_tasking.cpp.

References kmp_taskred_data::reduce_orig.

◆ __kmp_assign_orig< kmp_taskred_input_t >()

◆ __kmp_atomic_execute_tasks_64()

template<bool C, bool S>
int __kmp_atomic_execute_tasks_64 ( kmp_info_t thread,
kmp_int32  gtid,
kmp_atomic_flag_64< C, S > *  flag,
int  final_spin,
int *thread_finished   USE_ITT_BUILD_ARGvoid *itt_sync_obj,
kmp_int32  is_constrained 
)

Definition at line 3615 of file kmp_tasking.cpp.

References __kmp_execute_tasks_template(), flag, and USE_ITT_BUILD_ARG.

◆ __kmp_atomic_execute_tasks_64< false, true >()

template int __kmp_atomic_execute_tasks_64< false, true > ( kmp_info_t ,
kmp_int32  ,
kmp_atomic_flag_64< false, true > *  ,
int  ,
int USE_ITT_BUILD_ARGvoid *,
kmp_int32   
)

◆ __kmp_atomic_execute_tasks_64< true, false >()

template int __kmp_atomic_execute_tasks_64< true, false > ( kmp_info_t ,
kmp_int32  ,
kmp_atomic_flag_64< true, false > *  ,
int  ,
int USE_ITT_BUILD_ARGvoid *,
kmp_int32   
)

◆ __kmp_bottom_half_finish_proxy()

static void __kmp_bottom_half_finish_proxy ( kmp_int32  gtid,
kmp_task_t ptask 
)
static

◆ __kmp_call_init()

template<typename T >
void __kmp_call_init ( kmp_taskred_data_t item,
size_t  j 
)

◆ __kmp_call_init< kmp_task_red_input_t >()

template<>
void __kmp_call_init< kmp_task_red_input_t > ( kmp_taskred_data_t item,
size_t  offset 
)

◆ __kmp_call_init< kmp_taskred_input_t >()

template<>
void __kmp_call_init< kmp_taskred_input_t > ( kmp_taskred_data_t item,
size_t  offset 
)

◆ __kmp_enable_tasking()

static void __kmp_enable_tasking ( kmp_task_team_t task_team,
kmp_info_t this_thr 
)
static

◆ __kmp_execute_tasks_32()

template<bool C, bool S>
int __kmp_execute_tasks_32 ( kmp_info_t thread,
kmp_int32  gtid,
kmp_flag_32< C, S > *  flag,
int  final_spin,
int *thread_finished   USE_ITT_BUILD_ARGvoid *itt_sync_obj,
kmp_int32  is_constrained 
)

Definition at line 3595 of file kmp_tasking.cpp.

References __kmp_execute_tasks_template(), flag, and USE_ITT_BUILD_ARG.

Referenced by __kmpc_omp_taskyield().

◆ __kmp_execute_tasks_32< false, false >()

template int __kmp_execute_tasks_32< false, false > ( kmp_info_t ,
kmp_int32  ,
kmp_flag_32< false, false > *  ,
int  ,
int USE_ITT_BUILD_ARGvoid *,
kmp_int32   
)

◆ __kmp_execute_tasks_64()

template<bool C, bool S>
int __kmp_execute_tasks_64 ( kmp_info_t thread,
kmp_int32  gtid,
kmp_flag_64< C, S > *  flag,
int  final_spin,
int *thread_finished   USE_ITT_BUILD_ARGvoid *itt_sync_obj,
kmp_int32  is_constrained 
)

Definition at line 3605 of file kmp_tasking.cpp.

References __kmp_execute_tasks_template(), flag, and USE_ITT_BUILD_ARG.

◆ __kmp_execute_tasks_64< false, true >()

template int __kmp_execute_tasks_64< false, true > ( kmp_info_t ,
kmp_int32  ,
kmp_flag_64< false, true > *  ,
int  ,
int USE_ITT_BUILD_ARGvoid *,
kmp_int32   
)

◆ __kmp_execute_tasks_64< true, false >()

template int __kmp_execute_tasks_64< true, false > ( kmp_info_t ,
kmp_int32  ,
kmp_flag_64< true, false > *  ,
int  ,
int USE_ITT_BUILD_ARGvoid *,
kmp_int32   
)

◆ __kmp_execute_tasks_oncore()

int __kmp_execute_tasks_oncore ( kmp_info_t thread,
kmp_int32  gtid,
kmp_flag_oncore flag,
int  final_spin,
int *thread_finished   USE_ITT_BUILD_ARGvoid *itt_sync_obj,
kmp_int32  is_constrained 
)

Definition at line 3624 of file kmp_tasking.cpp.

References __kmp_execute_tasks_template(), flag, and USE_ITT_BUILD_ARG.

◆ __kmp_execute_tasks_template()

template<class C >
static int __kmp_execute_tasks_template ( kmp_info_t thread,
kmp_int32  gtid,
C flag,
int  final_spin,
int *thread_finished   USE_ITT_BUILD_ARGvoid *itt_sync_obj,
kmp_int32  is_constrained 
)
inlinestatic

◆ __kmp_finish_implicit_task()

void __kmp_finish_implicit_task ( kmp_info_t thread)

◆ __kmp_first_top_half_finish_proxy()

static void __kmp_first_top_half_finish_proxy ( kmp_taskdata_t taskdata)
static

◆ __kmp_free_implicit_task()

void __kmp_free_implicit_task ( kmp_info_t thread)

Definition at line 1425 of file kmp_tasking.cpp.

References __kmp_dephash_free(), and task::th.

Referenced by __kmp_free_thread(), and __kmp_reap_thread().

◆ __kmp_free_task()

static void __kmp_free_task ( kmp_int32  gtid,
kmp_taskdata_t taskdata,
kmp_info_t thread 
)
static

◆ __kmp_free_task_and_ancestors()

static void __kmp_free_task_and_ancestors ( kmp_int32  gtid,
kmp_taskdata_t taskdata,
kmp_info_t thread 
)
static

◆ __kmp_free_task_deque()

static void __kmp_free_task_deque ( kmp_thread_data_t thread_data)
static

◆ __kmp_free_task_pri_list()

static void __kmp_free_task_pri_list ( kmp_task_team_t task_team)
static

◆ __kmp_free_task_team()

void __kmp_free_task_team ( kmp_info_t thread,
kmp_task_team_t task_team 
)

◆ __kmp_free_task_threads_data()

static void __kmp_free_task_threads_data ( kmp_task_team_t task_team)
static

◆ __kmp_fulfill_event()

void __kmp_fulfill_event ( kmp_event_t event)

◆ __kmp_get_priority_deque_data()

static kmp_thread_data_t * __kmp_get_priority_deque_data ( kmp_task_team_t task_team,
kmp_int32  pri 
)
static

◆ __kmp_get_priority_task()

static kmp_task_t * __kmp_get_priority_task ( kmp_int32  gtid,
kmp_task_team_t task_team,
kmp_int32  is_constrained 
)
static

◆ __kmp_give_task()

static bool __kmp_give_task ( kmp_info_t thread,
kmp_int32  tid,
kmp_task_t task,
kmp_int32  pass 
)
static

◆ __kmp_init_implicit_task()

void __kmp_init_implicit_task ( ident_t loc_ref,
kmp_info_t this_thr,
kmp_team_t team,
int  tid,
int  set_curr_task 
)

◆ __kmp_invoke_task()

static void __kmp_invoke_task ( kmp_int32  gtid,
kmp_task_t task,
kmp_taskdata_t current_task 
)
static

◆ __kmp_omp_task()

kmp_int32 __kmp_omp_task ( kmp_int32  gtid,
kmp_task_t new_task,
bool  serialize_immediate 
)

◆ __kmp_omp_taskloop_task()

kmp_int32 __kmp_omp_taskloop_task ( ident_t loc_ref,
kmp_int32  gtid,
kmp_task_t new_task,
void codeptr_ra 
)

◆ __kmp_pop_current_task_from_thread()

void __kmp_pop_current_task_from_thread ( kmp_info_t this_thr)

Definition at line 612 of file kmp_tasking.cpp.

References KF_TRACE.

Referenced by __kmp_join_call(), and __kmpc_end_serialized_parallel().

◆ __kmp_pop_task_team_node()

void __kmp_pop_task_team_node ( kmp_info_t thread,
kmp_team_t team 
)

◆ __kmp_push_current_task_to_thread()

void __kmp_push_current_task_to_thread ( kmp_info_t this_thr,
kmp_team_t team,
int  tid 
)

◆ __kmp_push_priority_task()

static kmp_int32 __kmp_push_priority_task ( kmp_int32  gtid,
kmp_info_t thread,
kmp_taskdata_t taskdata,
kmp_task_team_t task_team,
kmp_int32  pri 
)
static

◆ __kmp_push_task()

static kmp_int32 __kmp_push_task ( kmp_int32  gtid,
kmp_task_t task 
)
static

◆ __kmp_push_task_team_node()

void __kmp_push_task_team_node ( kmp_info_t thread,
kmp_team_t team 
)

◆ __kmp_realloc_task_deque()

static void __kmp_realloc_task_deque ( kmp_info_t thread,
kmp_thread_data_t thread_data 
)
static

◆ __kmp_realloc_task_threads_data()

static int __kmp_realloc_task_threads_data ( kmp_info_t thread,
kmp_task_team_t task_team 
)
static

◆ __kmp_reap_task_teams()

void __kmp_reap_task_teams ( void  )

◆ __kmp_remove_my_task()

static kmp_task_t * __kmp_remove_my_task ( kmp_info_t thread,
kmp_int32  gtid,
kmp_task_team_t task_team,
kmp_int32  is_constrained 
)
static

◆ __kmp_round_up_to_val()

static size_t __kmp_round_up_to_val ( size_t  size,
size_t  val 
)
static

Definition at line 1435 of file kmp_tasking.cpp.

References KMP_SIZE_T_MAX, size, and val.

Referenced by __kmp_task_alloc().

◆ __kmp_second_top_half_finish_proxy()

static void __kmp_second_top_half_finish_proxy ( kmp_taskdata_t taskdata)
static

◆ __kmp_steal_task()

static kmp_task_t * __kmp_steal_task ( kmp_int32  victim_tid,
kmp_int32  gtid,
kmp_task_team_t task_team,
std::atomic< kmp_int32 > *  unfinished_threads,
int thread_finished,
kmp_int32  is_constrained 
)
static

◆ __kmp_task_alloc()

kmp_task_t * __kmp_task_alloc ( ident_t loc_ref,
kmp_int32  gtid,
kmp_tasking_flags_t flags,
size_t  sizeof_kmp_task_t,
size_t  sizeof_shareds,
kmp_routine_entry_t  task_entry 
)

Definition at line 1457 of file kmp_tasking.cpp.

References __kmp_alloc_task_deque(), __kmp_enable_hidden_helper, __kmp_enable_tasking(), __kmp_hidden_helper_initialize(), __kmp_init_hidden_helper, __kmp_init_middle, __kmp_middle_initialize(), __kmp_round_up_to_val(), __kmp_task_team_setup(), __kmp_tasking_mode, __kmp_taskloop_task(), __kmp_thread_malloc, __kmp_threads, __kmp_track_children_task(), __kmp_unexecuted_hidden_helper_tasks, kmp_target_data::async_handle, kmp_tasking_flags::complete, copy_icvs(), kmp_taskgroup::count, kmp_tasking_flags::detachable, ompt_callbacks_active_s::enabled, kmp_tasking_flags::executing, FALSE, kmp_tasking_flags::final, kmp_tasking_flags::freed, kmp_tasking_flags::hidden_helper, KA_TRACE, KMP_ATOMIC_INC, KMP_ATOMIC_ST_RLX, KMP_CHECK_UPDATE, KMP_DEBUG_ASSERT, KMP_EVENT_UNINITIALIZED, KMP_GEN_TASK_ID, KMP_GTID_TO_SHADOW_GTID, KMP_TASKDATA_TO_TASK, KMP_TASKING_ENABLED, kmp_tasking_flags::merged_if0, ompt_enabled, task::part_id, kmp_tasking_flags::proxy, task::routine, task::shareds, kmp_tasking_flags::started, kmp_team::t, TASK_DETACHABLE, task_entry(), TASK_EXPLICIT, TASK_FULL, TASK_PROXY, kmp_tasking_flags::task_serial, TASK_UNTIED, kmp_tasking_flags::tasking_ser, kmp_tasking_flags::tasktype, TCR_4, TCW_4, kmp_taskdata::td_alloc_thread, kmp_taskdata::td_allocated_child_tasks, kmp_taskdata::td_allow_completion_event, kmp_taskdata::td_dephash, kmp_taskdata::td_depnode, kmp_taskdata::td_flags, kmp_taskdata::td_icvs, kmp_taskdata::td_ident, kmp_taskdata::td_incomplete_child_tasks, kmp_taskdata::td_last_tied, kmp_taskdata::td_level, kmp_taskdata::td_parent, kmp_taskdata::td_size_alloc, kmp_taskdata::td_target_data, kmp_taskdata::td_task_id, kmp_taskdata::td_task_team, kmp_taskdata::td_taskgroup, kmp_taskdata::td_taskwait_counter, kmp_taskdata::td_taskwait_ident, kmp_taskdata::td_taskwait_thread, kmp_taskdata::td_team, kmp_taskdata::td_untied_count, kmp_tasking_flags::team_serial, kmp_tasking_flags::tiedness, TRUE, tskm_immediate_exec, kmp_task_team::tt, kmp_base_task_team::tt_found_proxy_tasks, kmp_base_task_team::tt_hidden_helper_task_encountered, kmp_base_task_team::tt_threads_data, kmp_event_t::type, and UNLIKELY.

Referenced by __GOMP_taskloop(), and __kmpc_omp_task_alloc().

◆ __kmp_task_dup_alloc()

kmp_task_t * __kmp_task_dup_alloc ( kmp_info_t thread,
kmp_task_t task_src 
)

◆ __kmp_task_finish()

template<bool ompt>
static void __kmp_task_finish ( kmp_int32  gtid,
kmp_task_t task,
kmp_taskdata_t resumed_task 
)
static

◆ __kmp_task_is_allowed()

static bool __kmp_task_is_allowed ( int  gtid,
const kmp_int32  is_constrained,
const kmp_taskdata_t tasknew,
const kmp_taskdata_t taskcurr 
)
static

◆ __kmp_task_reduction_clean()

static void __kmp_task_reduction_clean ( kmp_info_t th,
kmp_taskgroup_t tg 
)
static

◆ __kmp_task_reduction_fini()

static void __kmp_task_reduction_fini ( kmp_info_t th,
kmp_taskgroup_t tg 
)
static

◆ __kmp_task_reduction_init()

template<typename T >
void * __kmp_task_reduction_init ( int  gtid,
int  num,
T *  data 
)

◆ __kmp_task_reduction_init_copy()

template<typename T >
void __kmp_task_reduction_init_copy ( kmp_info_t thr,
int  num,
T *  data,
kmp_taskgroup_t tg,
void reduce_data 
)

◆ __kmp_task_reduction_modifier_init()

template<typename T >
void * __kmp_task_reduction_modifier_init ( ident_t loc,
int  gtid,
int  is_ws,
int  num,
T *  data 
)

◆ __kmp_task_start()

static void __kmp_task_start ( kmp_int32  gtid,
kmp_task_t task,
kmp_taskdata_t current_task 
)
static

◆ __kmp_task_team_init()

static void __kmp_task_team_init ( kmp_task_team_t task_team,
kmp_team_t team 
)
inlinestatic

◆ __kmp_task_team_setup()

void __kmp_task_team_setup ( kmp_info_t this_thr,
kmp_team_t team 
)

◆ __kmp_task_team_sync()

void __kmp_task_team_sync ( kmp_info_t this_thr,
kmp_team_t team 
)

◆ __kmp_task_team_wait()

void __kmp_task_team_wait ( kmp_info_t this_thr,
kmp_team_t *team   USE_ITT_BUILD_ARGvoid *itt_sync_obj,
int  wait 
)

◆ __kmp_tasking_barrier()

void __kmp_tasking_barrier ( kmp_team_t team,
kmp_info_t thread,
int  gtid 
)

◆ __kmp_taskloop()

static void __kmp_taskloop ( ident_t loc,
int  gtid,
kmp_task_t task,
int  if_val,
kmp_uint64 lb,
kmp_uint64 ub,
kmp_int64  st,
int  nogroup,
int  sched,
kmp_uint64  grainsize,
int  modifier,
void task_dup 
)
static

◆ __kmp_taskloop_linear()

void __kmp_taskloop_linear ( ident_t loc,
int  gtid,
kmp_task_t task,
kmp_uint64 lb,
kmp_uint64 ub,
kmp_int64  st,
kmp_uint64  ub_glob,
kmp_uint64  num_tasks,
kmp_uint64  grainsize,
kmp_uint64  extras,
kmp_int64  last_chunk,
kmp_uint64  tc,
void task_dup 
)

◆ __kmp_taskloop_recur()

void __kmp_taskloop_recur ( ident_t loc,
int  gtid,
kmp_task_t task,
kmp_uint64 lb,
kmp_uint64 ub,
kmp_int64  st,
kmp_uint64  ub_glob,
kmp_uint64  num_tasks,
kmp_uint64  grainsize,
kmp_uint64  extras,
kmp_int64  last_chunk,
kmp_uint64  tc,
kmp_uint64  num_t_min,
void task_dup 
)

◆ __kmp_taskloop_task()

int __kmp_taskloop_task ( int  gtid,
void ptask 
)

◆ __kmp_track_children_task()

static bool __kmp_track_children_task ( kmp_taskdata_t taskdata)
static

◆ __kmp_wait_to_unref_task_teams()

void __kmp_wait_to_unref_task_teams ( void  )

◆ __kmpc_end_taskgroup()

void __kmpc_end_taskgroup ( ident_t loc,
int  gtid 
)

◆ __kmpc_give_task()

void __kmpc_give_task ( kmp_task_t ptask,
kmp_int32  start = 0 
)

◆ __kmpc_omp_target_task_alloc()

kmp_task_t * __kmpc_omp_target_task_alloc ( ident_t loc_ref,
kmp_int32  gtid,
kmp_int32  flags,
size_t  sizeof_kmp_task_t,
size_t  sizeof_shareds,
kmp_routine_entry_t  task_entry,
kmp_int64  device_id 
)

◆ __kmpc_omp_task()

kmp_int32 __kmpc_omp_task ( ident_t loc_ref,
kmp_int32  gtid,
kmp_task_t new_task 
)

◆ __kmpc_omp_task_alloc()

kmp_task_t * __kmpc_omp_task_alloc ( ident_t loc_ref,
kmp_int32  gtid,
kmp_int32  flags,
size_t  sizeof_kmp_task_t,
size_t  sizeof_shareds,
kmp_routine_entry_t  task_entry 
)

◆ __kmpc_omp_task_begin_if0()

void __kmpc_omp_task_begin_if0 ( ident_t loc_ref,
kmp_int32  gtid,
kmp_task_t task 
)

◆ __kmpc_omp_task_begin_if0_template()

template<bool ompt>
static void __kmpc_omp_task_begin_if0_template ( ident_t loc_ref,
kmp_int32  gtid,
kmp_task_t task,
void frame_address,
void return_address 
)
static

◆ __kmpc_omp_task_complete_if0()

void __kmpc_omp_task_complete_if0 ( ident_t loc_ref,
kmp_int32  gtid,
kmp_task_t task 
)

Definition at line 1292 of file kmp_tasking.cpp.

References ompt_callbacks_active_s::enabled, ompt_enabled, and UNLIKELY.

◆ __kmpc_omp_task_complete_if0_template()

template<bool ompt>
static void __kmpc_omp_task_complete_if0_template ( ident_t loc_ref,
kmp_int32  gtid,
kmp_task_t task 
)
static

◆ __kmpc_omp_task_parts()

kmp_int32 __kmpc_omp_task_parts ( ident_t loc_ref,
kmp_int32  gtid,
kmp_task_t new_task 
)

◆ __kmpc_omp_taskwait()

kmp_int32 __kmpc_omp_taskwait ( ident_t loc_ref,
kmp_int32  gtid 
)

Definition at line 2348 of file kmp_tasking.cpp.

References ompt_callbacks_active_s::enabled, ompt_enabled, OMPT_GET_FRAME_ADDRESS, and UNLIKELY.

Referenced by main().

◆ __kmpc_omp_taskwait_template()

template<bool ompt>
static kmp_int32 __kmpc_omp_taskwait_template ( ident_t loc_ref,
kmp_int32  gtid,
void frame_address,
void return_address 
)
static

◆ __kmpc_omp_taskyield()

kmp_int32 __kmpc_omp_taskyield ( ident_t loc_ref,
kmp_int32  gtid,
int  end_part 
)

◆ __kmpc_task_allow_completion_event()

kmp_event_t * __kmpc_task_allow_completion_event ( ident_t loc_ref,
int  gtid,
kmp_task_t task 
)

◆ __kmpc_taskgroup()

void __kmpc_taskgroup ( ident_t loc,
int  gtid 
)

◆ KMP_BUILD_ASSERT()

KMP_BUILD_ASSERT ( sizeof(long)  = =4||sizeof(long)==8)

Variable Documentation

◆ __kmp_free_task_teams

kmp_task_team_t* __kmp_free_task_teams
static
Initial value:
=
NULL

Definition at line 3756 of file kmp_tasking.cpp.

Referenced by __kmp_allocate_task_team(), __kmp_free_task_team(), and __kmp_reap_task_teams().

◆ __kmp_task_team_lock

kmp_bootstrap_lock_t __kmp_task_team_lock
Initial value:
=
#define KMP_BOOTSTRAP_LOCK_INITIALIZER(lock)
Definition: kmp_lock.h:523
kmp_bootstrap_lock_t __kmp_task_team_lock

Definition at line 3759 of file kmp_tasking.cpp.

Referenced by __kmp_allocate_task_team(), __kmp_atfork_child(), __kmp_free_task_team(), and __kmp_reap_task_teams().