Page MenuHomePhabricator

Add support for nowait and depend clauses in target construct in 4.1
ClosedPublic

Authored by jlpeyton on Apr 27 2015, 2:24 PM.

Details

Reviewers
hfinkel
Summary

The patch enables OpenMP 4.1 macros and build (build.pl and CMake). It creates a new kind of tasks named proxy tasks which are not executed by OpenMP threads but OpenMP still needs to maintain its synchronization in between them and with other OpenMP tasks. The most dramatic changes relate to the fact that the RTL had some assumptions about serialization and tasking that are no longer true. tskm_immediate_exec is not supported by this patch. 4.1 headers were added, which are just copies of the 4.0 headers, but that is a large portion of this change.

Diff Detail

Repository
rL LLVM

Event Timeline

jlpeyton updated this revision to Diff 24502.Apr 27 2015, 2:24 PM
jlpeyton retitled this revision from to Add support for nowait and depend clauses in target construct in 4.1.
jlpeyton updated this object.
jlpeyton edited the test plan for this revision. (Show Details)
jlpeyton added a reviewer: hfinkel.
jlpeyton set the repository for this revision to rL LLVM.
hfinkel accepted this revision.May 6 2015, 9:46 AM
hfinkel edited edge metadata.

This LGTM. I'd prefer this be broken up into three commits:

  1. Makefile changes to add 4.1 support
  2. Header changes to add 4.1 support
  3. Adding task proxy / task full
runtime/src/kmp_barrier.cpp
1491

The comment might also explain what 0 means too.

This revision is now accepted and ready to land.May 6 2015, 9:46 AM

I've committed the patch in 3 parts:
rev. 236744 - new headers;
rev. 236746 - build changes;
rev. 236753 - code changes.

jlpeyton closed this revision.May 7 2015, 11:19 AM

Closing revision.