diff options
Diffstat (limited to 'openmp/runtime/src/kmp_barrier.cpp')
| -rw-r--r-- | openmp/runtime/src/kmp_barrier.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/openmp/runtime/src/kmp_barrier.cpp b/openmp/runtime/src/kmp_barrier.cpp index ecb115ad523..0fd96e7b9b8 100644 --- a/openmp/runtime/src/kmp_barrier.cpp +++ b/openmp/runtime/src/kmp_barrier.cpp @@ -1297,6 +1297,7 @@ static int __kmp_barrier_template(enum barrier_type bt, int gtid, int is_split, ompt_data_t *my_task_data; ompt_data_t *my_parallel_data; void *return_address; + ompt_sync_region_t barrier_kind; #endif KA_TRACE(15, ("__kmp_barrier: T#%d(%d:%d) has arrived\n", gtid, @@ -1309,15 +1310,16 @@ static int __kmp_barrier_template(enum barrier_type bt, int gtid, int is_split, my_task_data = OMPT_CUR_TASK_DATA(this_thr); my_parallel_data = OMPT_CUR_TEAM_DATA(this_thr); return_address = OMPT_LOAD_RETURN_ADDRESS(gtid); + barrier_kind = __ompt_get_barrier_kind(bt, this_thr); if (ompt_enabled.ompt_callback_sync_region) { ompt_callbacks.ompt_callback(ompt_callback_sync_region)( - ompt_sync_region_barrier, ompt_scope_begin, my_parallel_data, - my_task_data, return_address); + barrier_kind, ompt_scope_begin, my_parallel_data, my_task_data, + return_address); } if (ompt_enabled.ompt_callback_sync_region_wait) { ompt_callbacks.ompt_callback(ompt_callback_sync_region_wait)( - ompt_sync_region_barrier, ompt_scope_begin, my_parallel_data, - my_task_data, return_address); + barrier_kind, ompt_scope_begin, my_parallel_data, my_task_data, + return_address); } #endif // It is OK to report the barrier state after the barrier begin callback. @@ -1575,13 +1577,13 @@ static int __kmp_barrier_template(enum barrier_type bt, int gtid, int is_split, #if OMPT_OPTIONAL if (ompt_enabled.ompt_callback_sync_region_wait) { ompt_callbacks.ompt_callback(ompt_callback_sync_region_wait)( - ompt_sync_region_barrier, ompt_scope_end, my_parallel_data, - my_task_data, return_address); + barrier_kind, ompt_scope_end, my_parallel_data, my_task_data, + return_address); } if (ompt_enabled.ompt_callback_sync_region) { ompt_callbacks.ompt_callback(ompt_callback_sync_region)( - ompt_sync_region_barrier, ompt_scope_end, my_parallel_data, - my_task_data, return_address); + barrier_kind, ompt_scope_end, my_parallel_data, my_task_data, + return_address); } #endif this_thr->th.ompt_thread_info.state = ompt_state_work_parallel; @@ -1729,12 +1731,12 @@ void __kmp_join_barrier(int gtid) { my_parallel_data = OMPT_CUR_TEAM_DATA(this_thr); if (ompt_enabled.ompt_callback_sync_region) { ompt_callbacks.ompt_callback(ompt_callback_sync_region)( - ompt_sync_region_barrier, ompt_scope_begin, my_parallel_data, + ompt_sync_region_barrier_implicit, ompt_scope_begin, my_parallel_data, my_task_data, codeptr); } if (ompt_enabled.ompt_callback_sync_region_wait) { ompt_callbacks.ompt_callback(ompt_callback_sync_region_wait)( - ompt_sync_region_barrier, ompt_scope_begin, my_parallel_data, + ompt_sync_region_barrier_implicit, ompt_scope_begin, my_parallel_data, my_task_data, codeptr); } if (!KMP_MASTER_TID(ds_tid)) @@ -2017,11 +2019,13 @@ void __kmp_fork_barrier(int gtid, int tid) { codeptr = team->t.ompt_team_info.master_return_address; if (ompt_enabled.ompt_callback_sync_region_wait) { ompt_callbacks.ompt_callback(ompt_callback_sync_region_wait)( - ompt_sync_region_barrier, ompt_scope_end, NULL, task_data, codeptr); + ompt_sync_region_barrier_implicit, ompt_scope_end, NULL, task_data, + codeptr); } if (ompt_enabled.ompt_callback_sync_region) { ompt_callbacks.ompt_callback(ompt_callback_sync_region)( - ompt_sync_region_barrier, ompt_scope_end, NULL, task_data, codeptr); + ompt_sync_region_barrier_implicit, ompt_scope_end, NULL, task_data, + codeptr); } #endif if (!KMP_MASTER_TID(ds_tid) && ompt_enabled.ompt_callback_implicit_task) { |

