This is an archive of the discontinued LLVM Phabricator instance.

Set exit_frame in master task before calling a user's outlined function for a parallel loop construct
Needs RevisionPublic

Authored by jmellorcrummey on Jan 30 2019, 1:02 PM.

Details

Reviewers
protze.joachim
AndreyChurbanov
Group Reviewers
Restricted Project
Summary

For combined parallel loop constructs, the master task launches an outlined function directly from the runtime. In such cases, the OMPT frame object for the master task needs to have its exit_frame field set before the outlined function is called. This patch corrects an omission in the OMPT support

Diff Detail

Repository
rOMP OpenMP

Event Timeline

jmellorcrummey created this revision.Jan 30 2019, 1:02 PM
jmellorcrummey edited the summary of this revision. (Show Details)Jan 30 2019, 3:29 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 6 2019, 9:07 AM
protze.joachim requested changes to this revision.Feb 7 2019, 4:03 AM

Please provide test cases, so that we can understand the impact of this change.

runtime/src/kmp_gsupport.cpp
1094

inner_frame resolves to the same address as parent_frame in line 1087, so you could just use this variable.

The task executing the loop body is still the same task as the task executing the parallel region.

1096

This will overwrite the value written, when the parallel region begins.

This revision now requires changes to proceed.Feb 7 2019, 4:03 AM