LLVM OpenMP 22.0.0git
|
These functions are used for implementing #pragma omp for, #pragma omp sections, #pragma omp single and #pragma omp master constructs. More...
Classes | |
struct | bounds_infoXX_template< T > |
Describes the structure for rectangular nested loops. More... | |
struct | bounds_info_t |
Interface struct for rectangular nested loops. More... |
These functions are used for implementing #pragma omp for, #pragma omp sections, #pragma omp single and #pragma omp master constructs.
When handling loops, there are different functions for each of the signed and unsigned 32 and 64 bit integer types which have the name suffixes _4, _4u, _8 and _8u. The semantics of each of the functions is the same, so they are only described once.
Static loop scheduling is handled by __kmpc_for_static_init_4 and friends. Only a single call is needed, since the iterations to be executed by any give thread can be determined as soon as the loop parameters are known.
Dynamic scheduling is handled by the __kmpc_dispatch_init_4 and __kmpc_dispatch_next_4 functions. The init function is called once in each thread outside the loop, while the next function is called each time that the previous chunk of work has been exhausted.
enum sched_type : kmp_int32 |
Describes the loop schedule to be used for a parallel for loop.
void __kmpc_critical | ( | ident_t * | loc, |
kmp_int32 | global_tid, | ||
kmp_critical_name * | crit ) |
loc | source location information. |
global_tid | global thread number. |
crit | identity of the critical section. This could be a pointer to a lock associated with the critical section, or some other suitably unique value. |
Enter code protected by a critical construct. This function blocks until the executing thread can enter the critical section.
Definition at line 1343 of file kmp_csupport.cpp.
References __kmp_acquire_user_lock_with_checks(), __kmp_assert_valid_gtid(), __kmp_env_consistency_check, __kmp_get_critical_section_ptr(), __kmp_push_sync(), __kmp_threads, __kmp_user_lock_kind, __kmpc_critical_with_hint(), crit, ct_critical, KA_TRACE, KC_TRACE, KMP_CHECK_USER_LOCK_INIT, KMP_COUNT_BLOCK, KMP_POP_PARTITIONED_TIMER, KMP_PUSH_PARTITIONED_TIMER, lck, lk_tas, loc, OMP_CRITICAL_SIZE, ompt_callbacks, ompt_enabled, ompt_thread_info_t::state, and ompt_thread_info_t::wait_id.
Referenced by KMP_API_NAME_GOMP_CRITICAL_NAME_START(), and KMP_API_NAME_GOMP_CRITICAL_START().
loc | Source code location |
gtid | Global thread id |
Mark the end of a dynamic loop.
Definition at line 2989 of file kmp_dispatch.cpp.
References __kmp_dispatch_finish(), and loc.
Definition at line 3003 of file kmp_dispatch.cpp.
References __kmp_dispatch_finish(), and loc.
Definition at line 2996 of file kmp_dispatch.cpp.
References __kmp_dispatch_finish(), and loc.
Definition at line 3010 of file kmp_dispatch.cpp.
References __kmp_dispatch_finish(), and loc.
void __kmpc_dispatch_init_4 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
enum sched_type | schedule, | ||
kmp_int32 | lb, | ||
kmp_int32 | ub, | ||
kmp_int32 | st, | ||
kmp_int32 | chunk ) |
loc | Source location |
gtid | Global thread id |
schedule | Schedule type |
lb | Lower bound |
ub | Upper bound |
st | Step (or increment if you prefer) |
chunk | The chunk size to block with |
This function prepares the runtime to start a dynamically scheduled for loop, saving the loop arguments. These functions are all identical apart from the types of the arguments.
Definition at line 2802 of file kmp_dispatch.cpp.
References __kmp_dispatch_init(), __kmp_init_serial, KMP_DEBUG_ASSERT, and loc.
void __kmpc_dispatch_init_4u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
enum sched_type | schedule, | ||
kmp_uint32 | lb, | ||
kmp_uint32 | ub, | ||
kmp_int32 | st, | ||
kmp_int32 | chunk ) |
Definition at line 2814 of file kmp_dispatch.cpp.
References __kmp_dispatch_init(), __kmp_init_serial, KMP_DEBUG_ASSERT, kmp_uint32, and loc.
void __kmpc_dispatch_init_8 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
enum sched_type | schedule, | ||
kmp_int64 | lb, | ||
kmp_int64 | ub, | ||
kmp_int64 | st, | ||
kmp_int64 | chunk ) |
Definition at line 2827 of file kmp_dispatch.cpp.
References __kmp_dispatch_init(), __kmp_init_serial, KMP_DEBUG_ASSERT, and loc.
void __kmpc_dispatch_init_8u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
enum sched_type | schedule, | ||
kmp_uint64 | lb, | ||
kmp_uint64 | ub, | ||
kmp_int64 | st, | ||
kmp_int64 | chunk ) |
Definition at line 2840 of file kmp_dispatch.cpp.
References __kmp_dispatch_init(), __kmp_init_serial, KMP_DEBUG_ASSERT, and loc.
int __kmpc_dispatch_next_4 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 * | p_last, | ||
kmp_int32 * | p_lb, | ||
kmp_int32 * | p_ub, | ||
kmp_int32 * | p_st ) |
loc | Source code location |
gtid | Global thread id |
p_last | Pointer to a flag set to one if this is the last chunk or zero otherwise |
p_lb | Pointer to the lower bound for the next chunk of work |
p_ub | Pointer to the upper bound for the next chunk of work |
p_st | Pointer to the stride for the next chunk of work |
Get the next dynamically allocated chunk of work for this thread. If there is no more work, then the lb,ub and stride need not be modified.
Definition at line 2920 of file kmp_dispatch.cpp.
References __kmp_dispatch_next(), and loc.
int __kmpc_dispatch_next_4u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 * | p_last, | ||
kmp_uint32 * | p_lb, | ||
kmp_uint32 * | p_ub, | ||
kmp_int32 * | p_st ) |
Definition at line 2936 of file kmp_dispatch.cpp.
References __kmp_dispatch_next(), kmp_uint32, and loc.
int __kmpc_dispatch_next_8 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 * | p_last, | ||
kmp_int64 * | p_lb, | ||
kmp_int64 * | p_ub, | ||
kmp_int64 * | p_st ) |
Definition at line 2953 of file kmp_dispatch.cpp.
References __kmp_dispatch_next(), and loc.
int __kmpc_dispatch_next_8u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 * | p_last, | ||
kmp_uint64 * | p_lb, | ||
kmp_uint64 * | p_ub, | ||
kmp_int64 * | p_st ) |
Definition at line 2969 of file kmp_dispatch.cpp.
References __kmp_dispatch_next(), and loc.
void __kmpc_dist_dispatch_init_4 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
enum sched_type | schedule, | ||
kmp_int32 * | p_last, | ||
kmp_int32 | lb, | ||
kmp_int32 | ub, | ||
kmp_int32 | st, | ||
kmp_int32 | chunk ) |
Difference from __kmpc_dispatch_init set of functions is these functions are called for composite distribute parallel for construct. Thus before regular iterations dispatching we need to calc per-team iteration space.
These functions are all identical apart from the types of the arguments.
Definition at line 2859 of file kmp_dispatch.cpp.
References __kmp_dispatch_init(), __kmp_dist_get_bounds(), __kmp_init_serial, KMP_DEBUG_ASSERT, and loc.
void __kmpc_dist_dispatch_init_4u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
enum sched_type | schedule, | ||
kmp_int32 * | p_last, | ||
kmp_uint32 | lb, | ||
kmp_uint32 | ub, | ||
kmp_int32 | st, | ||
kmp_int32 | chunk ) |
Definition at line 2871 of file kmp_dispatch.cpp.
References __kmp_dispatch_init(), __kmp_dist_get_bounds(), __kmp_init_serial, KMP_DEBUG_ASSERT, kmp_uint32, and loc.
void __kmpc_dist_dispatch_init_8 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
enum sched_type | schedule, | ||
kmp_int32 * | p_last, | ||
kmp_int64 | lb, | ||
kmp_int64 | ub, | ||
kmp_int64 | st, | ||
kmp_int64 | chunk ) |
Definition at line 2883 of file kmp_dispatch.cpp.
References __kmp_dispatch_init(), __kmp_dist_get_bounds(), __kmp_init_serial, KMP_DEBUG_ASSERT, and loc.
void __kmpc_dist_dispatch_init_8u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
enum sched_type | schedule, | ||
kmp_int32 * | p_last, | ||
kmp_uint64 | lb, | ||
kmp_uint64 | ub, | ||
kmp_int64 | st, | ||
kmp_int64 | chunk ) |
Definition at line 2895 of file kmp_dispatch.cpp.
References __kmp_dispatch_init(), __kmp_dist_get_bounds(), __kmp_init_serial, KMP_DEBUG_ASSERT, and loc.
void __kmpc_dist_for_static_init_4 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 | schedule, | ||
kmp_int32 * | plastiter, | ||
kmp_int32 * | plower, | ||
kmp_int32 * | pupper, | ||
kmp_int32 * | pupperD, | ||
kmp_int32 * | pstride, | ||
kmp_int32 | incr, | ||
kmp_int32 | chunk ) |
loc | Source code location |
gtid | Global thread id of this thread |
schedule | Scheduling type for the parallel loop |
plastiter | Pointer to the "last iteration" flag |
plower | Pointer to the lower bound |
pupper | Pointer to the upper bound of loop chunk |
pupperD | Pointer to the upper bound of dist_chunk |
pstride | Pointer to the stride for parallel loop |
incr | Loop increment |
chunk | The chunk size for the parallel loop |
Each of the four functions here are identical apart from the argument types.
The functions compute the upper and lower bounds and strides to be used for the set of iterations to be executed by the current thread from the statically scheduled loop that is described by the initial values of the bounds, strides, increment and chunks for parallel loop and distribute constructs.
Definition at line 989 of file kmp_sched.cpp.
References __kmp_dist_for_static_init(), loc, and OMPT_CODEPTR_ARG.
void __kmpc_dist_for_static_init_4u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 | schedule, | ||
kmp_int32 * | plastiter, | ||
kmp_uint32 * | plower, | ||
kmp_uint32 * | pupper, | ||
kmp_uint32 * | pupperD, | ||
kmp_int32 * | pstride, | ||
kmp_int32 | incr, | ||
kmp_int32 | chunk ) |
See __kmpc_dist_for_static_init_4.
Definition at line 1002 of file kmp_sched.cpp.
References __kmp_dist_for_static_init(), kmp_uint32, loc, and OMPT_CODEPTR_ARG.
void __kmpc_dist_for_static_init_8 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 | schedule, | ||
kmp_int32 * | plastiter, | ||
kmp_int64 * | plower, | ||
kmp_int64 * | pupper, | ||
kmp_int64 * | pupperD, | ||
kmp_int64 * | pstride, | ||
kmp_int64 | incr, | ||
kmp_int64 | chunk ) |
See __kmpc_dist_for_static_init_4.
Definition at line 1015 of file kmp_sched.cpp.
References __kmp_dist_for_static_init(), loc, and OMPT_CODEPTR_ARG.
void __kmpc_dist_for_static_init_8u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 | schedule, | ||
kmp_int32 * | plastiter, | ||
kmp_uint64 * | plower, | ||
kmp_uint64 * | pupper, | ||
kmp_uint64 * | pupperD, | ||
kmp_int64 * | pstride, | ||
kmp_int64 | incr, | ||
kmp_int64 | chunk ) |
See __kmpc_dist_for_static_init_4.
Definition at line 1028 of file kmp_sched.cpp.
References __kmp_dist_for_static_init(), loc, and OMPT_CODEPTR_ARG.
loc | source location information. |
gtid | global thread number. |
num_dims | number of associated doacross loops. |
dims | info on loops bounds. |
Initialize doacross loop information. Expect compiler send us inclusive bounds, e.g. for(i=2;i<9;i+=2) lo=2, up=8, st=2.
Definition at line 4145 of file kmp_csupport.cpp.
References __kmp_assert_valid_gtid(), __kmp_dispatch_num_buffers, __kmp_eq_4(), __kmp_thread_calloc, __kmp_thread_malloc, __kmp_threads, __kmp_wait_4(), dispatch_shared_info::doacross_buf_idx, dispatch_shared_info::doacross_flags, dispatch_shared_info::doacross_num_done, j, KA_TRACE, KMP_COMPARE_AND_STORE_RET32, KMP_COMPARE_AND_STORE_RET64, KMP_DEBUG_ASSERT, KMP_MB, kmp_uint32, KMP_YIELD, kmp_dim::lo, loc, size, kmp_dim::st, kmp_team::t, kmp_disp::th_doacross_buf_idx, kmp_disp::th_doacross_flags, kmp_disp::th_doacross_info, TRUE, and kmp_dim::up.
void __kmpc_end_critical | ( | ident_t * | loc, |
kmp_int32 | global_tid, | ||
kmp_critical_name * | crit ) |
loc | source location information. |
global_tid | global thread number . |
crit | identity of the critical section. This could be a pointer to a lock associated with the critical section, or some other suitably unique value. |
Leave a critical section, releasing any lock that was held during its execution.
Definition at line 1703 of file kmp_csupport.cpp.
References __kmp_env_consistency_check, __kmp_pop_sync(), __kmp_release_user_lock_with_checks(), __kmp_user_lock_kind, crit, ct_critical, KA_TRACE, KC_TRACE, KMP_ASSERT, KMP_POP_PARTITIONED_TIMER, lck, lk_tas, loc, OMP_CRITICAL_SIZE, ompt_callbacks, ompt_enabled, and TCR_PTR.
Referenced by KMP_API_NAME_GOMP_CRITICAL_END(), and KMP_API_NAME_GOMP_CRITICAL_NAME_END().
loc | source location information. |
global_tid | global thread number . |
Mark the end of a masked region. This should only be called by the thread that executes the masked region.
Definition at line 1006 of file kmp_csupport.cpp.
References __kmp_assert_valid_gtid(), __kmp_env_consistency_check, __kmp_pop_sync(), __kmp_threads, __kmp_tid_from_gtid(), ct_masked, KC_TRACE, KMP_POP_PARTITIONED_TIMER, loc, ompt_callbacks, ompt_enabled, OMPT_GET_RETURN_ADDRESS, and kmp_team::t.
loc | source location information. |
global_tid | global thread number . |
Mark the end of a master region. This should only be called by the thread that executes the master region.
Definition at line 918 of file kmp_csupport.cpp.
References __kmp_assert_valid_gtid(), __kmp_env_consistency_check, __kmp_pop_sync(), __kmp_threads, __kmp_tid_from_gtid(), ct_master, KC_TRACE, KMP_DEBUG_ASSERT, KMP_MASTER_GTID, KMP_POP_PARTITIONED_TIMER, loc, ompt_callbacks, ompt_enabled, OMPT_GET_RETURN_ADDRESS, and kmp_team::t.
loc | source location information. |
gtid | global thread number. |
End execution of an ordered construct.
Definition at line 1108 of file kmp_csupport.cpp.
References __kmp_assert_valid_gtid(), __kmp_parallel_dxo(), __kmp_team_from_gtid(), __kmp_threads, KC_TRACE, loc, ompt_callbacks, ompt_enabled, and kmp_team::t.
Referenced by KMP_API_NAME_GOMP_ORDERED_END().
loc | source location information |
global_tid | global thread number |
End of "sections" construct. Don't need to wait here: barrier is added separately when needed.
Definition at line 2640 of file kmp_dispatch.cpp.
References __kmp_threads, __ompt_get_task_info_object(), __ompt_get_teaminfo(), KD_TRACE, KMP_POP_PARTITIONED_TIMER, loc, ompt_callbacks, ompt_enabled, OMPT_GET_RETURN_ADDRESS, ompt_team_info_t::parallel_data, and ompt_task_info_t::task_data.
loc | source location information |
global_tid | global thread number |
Mark the end of a single construct. This function should only be called by the thread that executed the block of code protected by the single construct.
Definition at line 1976 of file kmp_csupport.cpp.
References __kmp_assert_valid_gtid(), __kmp_exit_single(), __kmp_threads, __kmp_tid_from_gtid(), KMP_POP_PARTITIONED_TIMER, loc, ompt_callbacks, ompt_enabled, OMPT_GET_RETURN_ADDRESS, and kmp_team::t.
loc | Source location |
global_tid | Global thread id |
Mark the end of a statically scheduled loop.
Definition at line 2003 of file kmp_csupport.cpp.
References __kmp_env_consistency_check, __kmp_pop_workshare(), __ompt_get_task_info_object(), __ompt_get_teaminfo(), ct_pdo, KE_TRACE, KMP_DEBUG_ASSERT, KMP_IDENT_WORK_DISTRIBUTE, KMP_IDENT_WORK_LOOP, KMP_IDENT_WORK_SECTIONS, KMP_POP_PARTITIONED_TIMER, loc, ompt_callbacks, ompt_enabled, OMPT_GET_RETURN_ADDRESS, ompt_team_info_t::parallel_data, and ompt_task_info_t::task_data.
void __kmpc_for_static_init_4 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 | schedtype, | ||
kmp_int32 * | plastiter, | ||
kmp_int32 * | plower, | ||
kmp_int32 * | pupper, | ||
kmp_int32 * | pstride, | ||
kmp_int32 | incr, | ||
kmp_int32 | chunk ) |
loc | Source code location |
gtid | Global thread id of this thread |
schedtype | Scheduling type |
plastiter | Pointer to the "last iteration" flag |
plower | Pointer to the lower bound |
pupper | Pointer to the upper bound |
pstride | Pointer to the stride |
incr | Loop increment |
chunk | The chunk size |
Each of the four functions here are identical apart from the argument types.
The functions compute the upper and lower bounds and stride to be used for the set of iterations to be executed by the current thread from the statically scheduled loop that is described by the initial values of the bounds, stride, increment and chunk size.
Definition at line 895 of file kmp_sched.cpp.
References __kmp_for_static_init(), loc, and OMPT_GET_RETURN_ADDRESS.
void __kmpc_for_static_init_4u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 | schedtype, | ||
kmp_int32 * | plastiter, | ||
kmp_uint32 * | plower, | ||
kmp_uint32 * | pupper, | ||
kmp_int32 * | pstride, | ||
kmp_int32 | incr, | ||
kmp_int32 | chunk ) |
Definition at line 911 of file kmp_sched.cpp.
References __kmp_for_static_init(), kmp_uint32, loc, and OMPT_GET_RETURN_ADDRESS.
void __kmpc_for_static_init_8 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 | schedtype, | ||
kmp_int32 * | plastiter, | ||
kmp_int64 * | plower, | ||
kmp_int64 * | pupper, | ||
kmp_int64 * | pstride, | ||
kmp_int64 | incr, | ||
kmp_int64 | chunk ) |
Definition at line 928 of file kmp_sched.cpp.
References __kmp_for_static_init(), loc, and OMPT_GET_RETURN_ADDRESS.
void __kmpc_for_static_init_8u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 | schedtype, | ||
kmp_int32 * | plastiter, | ||
kmp_uint64 * | plower, | ||
kmp_uint64 * | pupper, | ||
kmp_int64 * | pstride, | ||
kmp_int64 | incr, | ||
kmp_int64 | chunk ) |
Definition at line 944 of file kmp_sched.cpp.
References __kmp_for_static_init(), loc, and OMPT_GET_RETURN_ADDRESS.
loc | source location information. |
global_tid | global thread number. |
filter | result of evaluating filter clause on thread global_tid, or zero if no filter clause present |
Definition at line 950 of file kmp_csupport.cpp.
References __kmp_assert_valid_gtid(), __kmp_check_sync(), __kmp_env_consistency_check, __kmp_init_parallel, __kmp_parallel_initialize(), __kmp_push_sync(), __kmp_resume_if_soft_paused(), __kmp_threads, __kmp_tid_from_gtid(), ct_masked, KC_TRACE, KMP_COUNT_BLOCK, KMP_PUSH_PARTITIONED_TIMER, loc, ompt_callbacks, ompt_enabled, OMPT_GET_RETURN_ADDRESS, status, kmp_team::t, and TCR_4.
loc | source location information. |
global_tid | global thread number . |
Definition at line 861 of file kmp_csupport.cpp.
References __kmp_assert_valid_gtid(), __kmp_check_sync(), __kmp_env_consistency_check, __kmp_init_parallel, __kmp_parallel_initialize(), __kmp_push_sync(), __kmp_resume_if_soft_paused(), __kmp_threads, __kmp_tid_from_gtid(), ct_master, KC_TRACE, KMP_COUNT_BLOCK, KMP_MASTER_GTID, KMP_PUSH_PARTITIONED_TIMER, loc, ompt_callbacks, ompt_enabled, OMPT_GET_RETURN_ADDRESS, status, kmp_team::t, and TCR_4.
Referenced by __kmpc_barrier_master_nowait().
loc | source location information |
global_tid | global thread number |
numberOfSections | number of sections in the 'sections' construct |
Definition at line 2551 of file kmp_dispatch.cpp.
References __kmp_dispatch_num_buffers, __kmp_threads, __ompt_get_task_info_object(), __ompt_get_teaminfo(), dispatch_shared_info_template< T >::buffer_index, instance, dispatch_shared_infoXX_template< T >::iteration, KD_TRACE, KMP_DEBUG_ASSERT, KMP_MB, KMP_TIME_PARTITIONED_BLOCK, loc, dispatch_shared_infoXX_template< T >::num_done, ompt_callbacks, ompt_enabled, OMPT_GET_RETURN_ADDRESS, ompt_team_info_t::parallel_data, dispatch_shared_info_template< T >::shared_info_tmpl::s, kmp_team::t, ompt_task_info_t::task_data, test_then_inc< kmp_int32 >(), and dispatch_shared_info_template< T >::u.
loc | source location information. |
gtid | global thread number. |
Start execution of an ordered construct.
Definition at line 1035 of file kmp_csupport.cpp.
References __kmp_assert_valid_gtid(), __kmp_init_parallel, __kmp_init_serial, __kmp_parallel_deo(), __kmp_parallel_initialize(), __kmp_resume_if_soft_paused(), __kmp_team_from_gtid(), __kmp_threads, KC_TRACE, KMP_DEBUG_ASSERT, lck, loc, ompt_callbacks, ompt_enabled, kmp_team::t, and TCR_4.
Referenced by KMP_API_NAME_GOMP_ORDERED_START().
loc | source location information |
global_tid | global thread number |
Beginning of sections construct. There are no implicit barriers in the "sections" calls, rather the compiler should introduce an explicit barrier if it is required.
This implementation is based on __kmp_dispatch_init, using same constructs for shared data (we can't have sections nested directly in omp for loop, there should be a parallel region in between)
Definition at line 2467 of file kmp_dispatch.cpp.
References __kmp_dispatch_deo_error(), __kmp_dispatch_dxo_error(), __kmp_dispatch_num_buffers, __kmp_eq(), __kmp_init_parallel, __kmp_init_serial, __kmp_parallel_initialize(), __kmp_resume_if_soft_paused(), __kmp_threads, __kmp_wait(), __ompt_get_task_info_object(), __ompt_get_teaminfo(), dispatch_shared_info_template< T >::buffer_index, CCAST, KD_TRACE, KMP_COUNT_BLOCK, KMP_DEBUG_ASSERT, KMP_MB, KMP_PUSH_PARTITIONED_TIMER, kmp_uint32, loc, ompt_callbacks, ompt_enabled, OMPT_GET_RETURN_ADDRESS, ompt_team_info_t::parallel_data, kmp_team::t, ompt_task_info_t::task_data, TCR_4, and USE_ITT_BUILD_ARG.
loc | source location information |
global_tid | global thread number |
Test whether to execute a single construct. There are no implicit barriers in the two "single" calls, rather the compiler should introduce an explicit barrier if it is required.
Definition at line 1923 of file kmp_csupport.cpp.
References __kmp_assert_valid_gtid(), __kmp_enter_single(), __kmp_threads, __kmp_tid_from_gtid(), KMP_COUNT_BLOCK, KMP_PUSH_PARTITIONED_TIMER, loc, ompt_callbacks, ompt_enabled, OMPT_GET_RETURN_ADDRESS, kmp_team::t, and TRUE.
void __kmpc_team_static_init_4 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 * | p_last, | ||
kmp_int32 * | p_lb, | ||
kmp_int32 * | p_ub, | ||
kmp_int32 * | p_st, | ||
kmp_int32 | incr, | ||
kmp_int32 | chunk ) |
loc | Source location |
gtid | Global thread id |
p_last | pointer to last iteration flag |
p_lb | pointer to Lower bound |
p_ub | pointer to Upper bound |
p_st | Step (or increment if you prefer) |
incr | Loop increment |
chunk | The chunk size to block with |
The functions compute the upper and lower bounds and stride to be used for the set of iterations to be executed by the current team from the statically scheduled loop that is described by the initial values of the bounds, stride, increment and chunk for the distribute construct as part of composite distribute parallel loop construct. These functions are all identical apart from the types of the arguments.
Definition at line 1067 of file kmp_sched.cpp.
References __kmp_init_serial, __kmp_team_static_init(), KMP_DEBUG_ASSERT, and loc.
void __kmpc_team_static_init_4u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 * | p_last, | ||
kmp_uint32 * | p_lb, | ||
kmp_uint32 * | p_ub, | ||
kmp_int32 * | p_st, | ||
kmp_int32 | incr, | ||
kmp_int32 | chunk ) |
See __kmpc_team_static_init_4.
Definition at line 1079 of file kmp_sched.cpp.
References __kmp_init_serial, __kmp_team_static_init(), KMP_DEBUG_ASSERT, kmp_uint32, and loc.
void __kmpc_team_static_init_8 | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 * | p_last, | ||
kmp_int64 * | p_lb, | ||
kmp_int64 * | p_ub, | ||
kmp_int64 * | p_st, | ||
kmp_int64 | incr, | ||
kmp_int64 | chunk ) |
See __kmpc_team_static_init_4.
Definition at line 1091 of file kmp_sched.cpp.
References __kmp_init_serial, __kmp_team_static_init(), KMP_DEBUG_ASSERT, and loc.
void __kmpc_team_static_init_8u | ( | ident_t * | loc, |
kmp_int32 | gtid, | ||
kmp_int32 * | p_last, | ||
kmp_uint64 * | p_lb, | ||
kmp_uint64 * | p_ub, | ||
kmp_int64 * | p_st, | ||
kmp_int64 | incr, | ||
kmp_int64 | chunk ) |
See __kmpc_team_static_init_4.
Definition at line 1103 of file kmp_sched.cpp.
References __kmp_init_serial, __kmp_team_static_init(), KMP_DEBUG_ASSERT, and loc.