forked from OSchip/llvm-project
[OMPT] Fix wrong parent_task_id in serialized parallel_begin with GCC
Without this patch a simple '#pragma omp parallel num_threads(1)' leads to ompt_event_parallel_begin: parent_task_id=3, [...], parallel_id=2, [...] ompt_event_parallel_end: parallel_id=2, task_id=4, [...] Differential Revision: http://reviews.llvm.org/D16714 llvm-svn: 263940
This commit is contained in:
parent
4b3833df7d
commit
6c250b714c
|
@ -384,27 +384,32 @@ __kmp_GOMP_fork_call(ident_t *loc, int gtid, void (*unwrapped_task)(void *), mic
|
|||
static void
|
||||
__kmp_GOMP_serialized_parallel(ident_t *loc, kmp_int32 gtid, void (*task)(void *))
|
||||
{
|
||||
__kmp_serialized_parallel(loc, gtid);
|
||||
|
||||
#if OMPT_SUPPORT
|
||||
ompt_parallel_id_t ompt_parallel_id;
|
||||
if (ompt_enabled) {
|
||||
ompt_task_id_t ompt_task_id = __ompt_get_task_id_internal(0);
|
||||
ompt_frame_t *ompt_frame = __ompt_get_task_frame_internal(0);
|
||||
kmp_info_t *thr = __kmp_threads[gtid];
|
||||
ompt_task_info_t *task_info = __ompt_get_taskinfo(0);
|
||||
task_info->frame.exit_runtime_frame = NULL;
|
||||
|
||||
ompt_parallel_id_t ompt_parallel_id = __ompt_parallel_id_new(gtid);
|
||||
ompt_task_id_t my_ompt_task_id = __ompt_task_id_new(gtid);
|
||||
|
||||
ompt_frame->exit_runtime_frame = NULL;
|
||||
ompt_parallel_id = __ompt_parallel_id_new(gtid);
|
||||
|
||||
// parallel region callback
|
||||
if (ompt_callbacks.ompt_callback(ompt_event_parallel_begin)) {
|
||||
int team_size = 1;
|
||||
ompt_callbacks.ompt_callback(ompt_event_parallel_begin)(
|
||||
ompt_task_id, ompt_frame, ompt_parallel_id,
|
||||
task_info->task_id, &task_info->frame, ompt_parallel_id,
|
||||
team_size, (void *) task,
|
||||
OMPT_INVOKER(fork_context_gnu));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
__kmp_serialized_parallel(loc, gtid);
|
||||
|
||||
#if OMPT_SUPPORT
|
||||
if (ompt_enabled) {
|
||||
kmp_info_t *thr = __kmp_threads[gtid];
|
||||
|
||||
ompt_task_id_t my_ompt_task_id = __ompt_task_id_new(gtid);
|
||||
|
||||
// set up lightweight task
|
||||
ompt_lw_taskteam_t *lwt = (ompt_lw_taskteam_t *)
|
||||
|
|
Loading…
Reference in New Issue