LLVM OpenMP 20.0.0git
|
These functions support tasking constructs. More...
These functions support tasking constructs.
gtid | Global Thread ID of current thread |
Acqurires a pointer to the target async handle from the current task.
Definition at line 5437 of file kmp_tasking.cpp.
References __kmp_thread_from_gtid(), kmp_target_data::async_handle, KMP_GTID_DNE, and kmp_taskdata::td_target_data.
gtid | Global Thread ID of current thread |
Checks if the current thread has a task team.
Definition at line 5458 of file kmp_tasking.cpp.
References __kmp_thread_from_gtid(), FALSE, KMP_GTID_DNE, and kmp_taskdata::td_task_team.
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 | ||
) |
loc_ref | location of the original task directive |
gtid | Global Thread ID of encountering thread |
new_task | task thunk allocated by __kmpc_omp_task_alloc() for the ''new task'' |
naffins | Number of affinity items |
affin_list | List of affinity items |
Definition at line 1741 of file kmp_tasking.cpp.
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 | ||
) |
loc_ref | location of the original task directive |
gtid | Global Thread ID of encountering thread |
new_task | task thunk allocated by __kmp_omp_task_alloc() for the ''new task'' |
ndeps | Number of depend items with possible aliasing |
dep_list | List of depend items with possible aliasing |
ndeps_noalias | Number of depend items with no aliasing |
noalias_dep_list | List of depend items with no aliasing |
Schedule a non-thread-switchable task with dependences for execution
Definition at line 677 of file kmp_taskdeps.cpp.
References __kmp_acquire_bootstrap_lock(), __kmp_allocate, __kmp_assert_valid_gtid(), __kmp_check_deps(), __kmp_dephash_create(), __kmp_free, __kmp_init_node(), __kmp_omp_task(), __kmp_release_bootstrap_lock(), __kmp_thread_malloc, __kmp_threads, kmp_depend_info::all, ompt_callbacks_active_s::enabled, kmp_tasking_flags::final, kmp_depend_info::flags, i, kmp_depend_info::in, KA_TRACE, KMP_ASSERT, KMP_ATOMIC_INC, KMP_ATOMIC_ST_REL, KMP_MEMCPY, KMP_SIZE_T_MAX, KMP_TASK_TO_TASKDATA, kmp_depend_info::mtx, new_size, NO_DEP_BARRIER, ompt_callbacks, ompt_enabled, OMPT_GET_FRAME_ADDRESS, kmp_depend_info::out, ret, kmp_depend_info::set, TASK_CURRENT_NOT_QUEUED, TASK_TYPE_DETAILS_FORMAT, kmp_tasking_flags::tasking_ser, kmp_taskdata::td_dephash, kmp_taskdata::td_depnode, kmp_taskdata::td_flags, kmp_taskdata::td_parent, kmp_taskdata::td_task_id, kmp_tasking_flags::team_serial, kmp_task_team::tt, kmp_base_task_team::tt_found_proxy_tasks, and kmp_base_task_team::tt_hidden_helper_task_encountered.
Referenced by main().
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 | ||
) |
loc_ref | location of the original task directive |
gtid | Global Thread ID of encountering thread |
ndeps | Number of depend items with possible aliasing |
dep_list | List of depend items with possible aliasing |
ndeps_noalias | Number of depend items with no aliasing |
noalias_dep_list | List of depend items with no aliasing |
Blocks the current task until all specifies dependences have been fulfilled.
Definition at line 888 of file kmp_taskdeps.cpp.
References __kmpc_omp_taskwait_deps_51().
Referenced by KMP_API_NAME_GOMP_TASKWAIT_DEPEND().
void __kmpc_proxy_task_completed | ( | kmp_int32 | gtid, |
kmp_task_t * | ptask | ||
) |
gtid | Global Thread ID of encountering thread |
ptask | Task which execution is completed |
Execute the completion of a proxy task from a thread of that is part of the team. Run first and bottom halves directly.
Definition at line 4514 of file kmp_tasking.cpp.
References __kmp_assert_valid_gtid(), __kmp_bottom_half_finish_proxy(), __kmp_first_top_half_finish_proxy(), __kmp_second_top_half_finish_proxy(), KA_TRACE, KMP_DEBUG_ASSERT, KMP_TASK_TO_TASKDATA, kmp_tasking_flags::proxy, TASK_PROXY, and kmp_taskdata::td_flags.
Referenced by __kmp_fulfill_event().
void __kmpc_proxy_task_completed_ooo | ( | kmp_task_t * | ptask | ) |
ptask | Task which execution is completed |
Execute the completion of a proxy task from a thread that could not belong to the team.
Definition at line 4578 of file kmp_tasking.cpp.
References __kmp_first_top_half_finish_proxy(), __kmp_second_top_half_finish_proxy(), __kmpc_give_task(), KA_TRACE, KMP_DEBUG_ASSERT, KMP_TASK_TO_TASKDATA, kmp_tasking_flags::proxy, TASK_PROXY, and kmp_taskdata::td_flags.
Referenced by __kmp_fulfill_event(), and target().
Get thread-specific location of data item
Definition at line 2663 of file kmp_tasking.cpp.
References __kmp_allocate, __kmp_assert_valid_gtid(), __kmp_threads, arr, data, i, j, KMP_ASSERT, KMP_ASSERT2, kmp_taskgroup::parent, kmp_taskgroup::reduce_data, kmp_taskgroup::reduce_num_data, and void.
Referenced by main().
gtid | Global thread ID |
num | Number of data items to reduce |
data | Array of data for reduction |
Initialize task reduction for the taskgroup.
Note: this entry supposes the optional compiler-generated initializer routine has single parameter - pointer to object to be initialized. That means the reduction either does not use omp_orig object, or the omp_orig is accessible without help of the runtime library.
Definition at line 2593 of file kmp_tasking.cpp.
References __kmp_allocate, __kmp_task_reduction_init(), data, and KMP_MEMCPY.
Referenced by main().
loc | Source location info |
gtid | Global thread ID |
is_ws | Is 1 if the reduction is for worksharing, 0 otherwise |
Finalize task reduction for a parallel or worksharing.
Definition at line 2876 of file kmp_tasking.cpp.
References __kmpc_end_taskgroup(), and loc.
void * __kmpc_task_reduction_modifier_init | ( | ident_t * | loc, |
int | gtid, | ||
int | is_ws, | ||
int | num, | ||
void * | data | ||
) |
loc | Source location info |
gtid | Global thread ID |
is_ws | Is 1 if the reduction is for worksharing, 0 otherwise |
num | Number of data items to reduce |
data | Array of data for reduction |
Initialize task reduction for a parallel or worksharing.
Note: this entry supposes the optional compiler-generated initializer routine has single parameter - pointer to object to be initialized. That means the reduction either does not use omp_orig object, or the omp_orig is accessible without help of the runtime library.
Definition at line 2842 of file kmp_tasking.cpp.
References __kmp_task_reduction_modifier_init(), data, and loc.
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 | ||
) |
loc | Source location information |
gtid | Global thread ID |
task | Task structure |
if_val | Value of the if clause |
lb | Pointer to loop lower bound in task structure |
ub | Pointer to loop upper bound in task structure |
st | Loop stride |
nogroup | Flag, 1 if nogroup clause specified, 0 otherwise |
sched | Schedule specified 0/1/2 for none/grainsize/num_tasks |
grainsize | Schedule value if specified |
task_dup | Tasks duplication routine |
Execute the taskloop construct.
Definition at line 5391 of file kmp_tasking.cpp.
References __kmp_assert_valid_gtid(), __kmp_taskloop(), KA_TRACE, and loc.
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 | ||
) |
loc | Source location information |
gtid | Global thread ID |
task | Task structure |
if_val | Value of the if clause |
lb | Pointer to loop lower bound in task structure |
ub | Pointer to loop upper bound in task structure |
st | Loop stride |
nogroup | Flag, 1 if nogroup clause specified, 0 otherwise |
sched | Schedule specified 0/1/2 for none/grainsize/num_tasks |
grainsize | Schedule value if specified |
modifier | Modifier 'strict' for sched, 1 if present, 0 otherwise |
task_dup | Tasks duplication routine |
Execute the taskloop construct.
Definition at line 5418 of file kmp_tasking.cpp.
References __kmp_assert_valid_gtid(), __kmp_taskloop(), KA_TRACE, and loc.
gtid | Global thread ID |
num | Number of data items to reduce |
data | Array of data for reduction |
Initialize task reduction for the taskgroup.
Note: this entry supposes the optional compiler-generated initializer routine has two parameters, pointer to object to be initialized and pointer to omp_orig
Definition at line 2620 of file kmp_tasking.cpp.
References __kmp_allocate, __kmp_task_reduction_init(), data, and KMP_MEMCPY.
loc | Source location info |
gtid | Global thread ID |
is_ws | Is 1 if the reduction is for worksharing, 0 otherwise |
num | Number of data items to reduce |
data | Array of data for reduction |
Initialize task reduction for a parallel or worksharing.
Note: this entry supposes the optional compiler-generated initializer routine has two parameters, pointer to object to be initialized and pointer to omp_orig
Definition at line 2862 of file kmp_tasking.cpp.
References __kmp_task_reduction_modifier_init(), data, and loc.