[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
This commit is contained in:
Jonas Hahnfeld
2016-02-12 12:19:59 +00:00
parent 662997c02a
commit e0df9a933b
+6 -3
View File
@@ -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
}