This is an archive of the discontinued LLVM Phabricator instance.

[OpenMP] Introduce GOMP mutexinoutset in the runtime
ClosedPublic

Authored by jlpeyton on Sep 7 2020, 10:04 PM.

Details

Summary

Encapsulate GOMP task dependencies in separate class and introduce the
new mutexinoutset dependency type. This separate class allows
future GOMP task APIs easier access to the task dependency functionality
and better ability to propagate new dependency types to all existing GOMP
task APIs which use task dependencies.

Diff Detail

Event Timeline

jlpeyton created this revision.Sep 7 2020, 10:04 PM
jlpeyton requested review of this revision.Sep 7 2020, 10:04 PM
protze.joachim added inline comments.
openmp/runtime/test/tasking/omp50_task_depend_mtx3.c
24–30

We have similar functionality available in llvm-project/openmp/runtime/test/omp_my_sleep.h

jlpeyton updated this revision to Diff 291699.Sep 14 2020, 3:07 PM

Use my_sleep() from omp_my_sleep.h

With this patch, I would expect runtime/test/ompt/tasks/dependences_mutexinoutset.c to succeed. Running the test with gcc-9/10, this test reports the dependency as ompt_dependence_type_inout and not ompt_dependence_type_mutexinoutset. Since the OMPT interface just translates the internal values, I assume something is wrong with the flags of the dependency.

I created D87680 with the updated expected OMPT test results.

jlpeyton updated this revision to Diff 292560.Sep 17 2020, 10:53 AM

Fixed the GOMP dependency type assignment. Checked with the follow-up OMPT changes in D87680.

protze.joachim accepted this revision.Sep 24 2020, 4:24 AM

With the OMPT tests succeeding, this patch looks good to me.

This revision is now accepted and ready to land.Sep 24 2020, 4:24 AM
This revision was landed with ongoing or failed builds.Sep 24 2020, 7:50 AM
This revision was automatically updated to reflect the committed changes.