[PATCH] D65835: [OpenMP] Fix map/is_device_ptr with DSA on combined directive

Alexey Bataev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 7 07:09:50 PDT 2019


ABataev added a comment.

`is_device_ptr` can be considered as a kind of mapping clause (see 2.19.7   Data-Mapping Attribute Rules, Clauses, and Directives), so, I assume, clang correct here in terms of OpenMP 4.5.
Thus, I would not call this a "fix", this is just a new feature from OpenMP 5.0.
Plus, these changes are not enough to support this new feature from OpenMP 5.0. There definitely must be some changes in the codegen. If the variable is mapped in the target construct, we should not generate a code for the private clause of this variable on the target construct, since, in this case, private clauses are applied for the inner subdirectives, which are the part of the combined directive, but not the `target` part of the directive.



================
Comment at: clang/lib/Sema/SemaOpenMP.cpp:10895
+    // combined construct.
+    if (CurrDir == OMPD_target) {
       OpenMPClauseKind ConflictKind;
----------------
I would suggest to guard this change and limit this new functionality only for OpenMP 5.0. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65835/new/

https://reviews.llvm.org/D65835





More information about the cfe-commits mailing list