From e0df9a933bdf4c55680ebd0926e56da088024222 Mon Sep 17 00:00:00 2001 From: Jonas Hahnfeld Date: Fri, 12 Feb 2016 12:19:59 +0000 Subject: [PATCH] [OMPT] Frame information for openmp taskwait For pragma omp taskwait the runtime is called from the task context. Therefore, the reentry frame information should be updated. The information should be available for both taskwait event calls; therefore, set before the first event and reset after the last event. Patch by Joachim Protze Differential Revision: http://reviews.llvm.org/D17145 git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@260674 91177308-0d34-0410-b5e6-96231b3b80d8 --- runtime/src/kmp_tasking.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/runtime/src/kmp_tasking.c b/runtime/src/kmp_tasking.c index 9aaef8b..10933f3 100644 --- a/runtime/src/kmp_tasking.c +++ b/runtime/src/kmp_tasking.c @@ -1358,6 +1358,7 @@ __kmpc_omp_taskwait( ident_t *loc_ref, kmp_int32 gtid ) my_task_id = taskdata->ompt_task_info.task_id; my_parallel_id = team->t.ompt_team_info.parallel_id; + taskdata->ompt_task_info.frame.reenter_runtime_frame = __builtin_frame_address(0); if (ompt_callbacks.ompt_callback(ompt_event_taskwait_begin)) { ompt_callbacks.ompt_callback(ompt_event_taskwait_begin)( my_parallel_id, my_task_id); @@ -1400,10 +1401,12 @@ __kmpc_omp_taskwait( ident_t *loc_ref, kmp_int32 gtid ) taskdata->td_taskwait_thread = - taskdata->td_taskwait_thread; #if OMPT_SUPPORT && OMPT_TRACE - if (ompt_enabled && - ompt_callbacks.ompt_callback(ompt_event_taskwait_end)) { - ompt_callbacks.ompt_callback(ompt_event_taskwait_end)( + if (ompt_enabled) { + if (ompt_callbacks.ompt_callback(ompt_event_taskwait_end)) { + ompt_callbacks.ompt_callback(ompt_event_taskwait_end)( my_parallel_id, my_task_id); + } + taskdata->ompt_task_info.frame.reenter_runtime_frame = 0; } #endif }