This is an archive of the discontinued LLVM Phabricator instance.

[OMPT] Adapt OMPT callback structure for tasks to handle untied tasks correctly (+ adapt testcase)
ClosedPublic

Authored by sconvent on Jul 11 2018, 6:22 AM.

Details

Summary

The ompt/tasks/task_types.c testcase did not test untied tasks properly. Now, frame addresses are tested and two scheduling points are added at which the task can switch to another thread. Due to scheduling effects, the frame address could be NULL.

This needed a restructure of the way OMPT callbacks are called. __ompt_task_finish() now as an extra parameter, whether a task is completed. Its invocation has been moved into __kmp_task_finish(). Thus, the order of the writes to the frame addresses is not subject to scheduling effects anymore.

Diff Detail

Repository
rL LLVM

Event Timeline

sconvent created this revision.Jul 11 2018, 6:22 AM
hbae added inline comments.Jul 19 2018, 2:51 PM
runtime/src/kmp_tasking.cpp
1327 ↗(On Diff #154972)

This should be removed.

1423 ↗(On Diff #154972)

I am not sure if the comment still corresponds to the code here.

protze.joachim accepted this revision.Jul 27 2018, 10:35 AM

I apply suggested changes by hbae on commit.

LGTM

This revision is now accepted and ready to land.Jul 27 2018, 10:35 AM
This revision was automatically updated to reflect the committed changes.