This is an archive of the discontinued LLVM Phabricator instance.

[OpenMP 5.0] target update list items need not be contiguous (Sema)
AbandonedPublic

Authored by cchen on Oct 22 2019, 11:53 AM.

Details

Summary

Removed a restriction that list items for target update directive must have contiguous storage.

Event Timeline

cchen created this revision.Oct 22 2019, 11:53 AM
Herald added a project: Restricted Project. · View Herald Transcript
cchen updated this revision to Diff 226067.Oct 22 2019, 11:56 AM

Fix summary message

cchen edited the summary of this revision. (Show Details)Oct 22 2019, 11:57 AM
ABataev added inline comments.Oct 25 2019, 7:41 AM
clang/lib/Sema/SemaOpenMP.cpp
14912

Ad the check for the version of OpenMP standard, it must be allowed only for OpenMP >= 50.

14926–14929

Same here, allow only for OpenMP >= 50. Also, split the patch into 2 parts, one for pointers stuff and another one for target update directive.

cchen updated this revision to Diff 227169.Oct 30 2019, 1:26 PM

Remove the restriction rule for array section to another patch

cchen edited the summary of this revision. (Show Details)Oct 30 2019, 1:27 PM
cchen added a project: Restricted Project.
cchen updated this revision to Diff 227174.Oct 30 2019, 1:48 PM

Rebase and fix add OpenMP 50 guard

What about codegen tests?

clang/test/OpenMP/target_update_ast_print.cpp
33

It seems to me, the tests are not updated. All non-contiguous tests must pass only if OpenMP version is 50

cchen updated this revision to Diff 229922.Nov 18 2019, 2:27 PM

Add and fix test.

ABataev added inline comments.Nov 19 2019, 7:58 AM
clang/lib/Sema/SemaOpenMP.cpp
14926–14929

SemaRef.getLangOpts().OpenMP < 50 || DKind != OMPD_target_update

clang/test/OpenMP/target_update_codegen.cpp
325–326

We still map the whole array here, right?

cchen abandoned this revision.Jul 22 2020, 1:50 PM