[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 12:15:09 PDT 2019


ABataev added a comment.

In D65835#1619549 <https://reviews.llvm.org/D65835#1619549>, @jdenny wrote:

> In D65835#1619526 <https://reviews.llvm.org/D65835#1619526>, @ABataev wrote:
>
> > > Maybe, but I haven't found any statement in either version that states that map restrictions apply to is_device_ptr.
> >
> > `is_device_ptr` is a kind of mapping clause. I assume we can extend the restrictions for `map` clause to this clause too.
>
>
> I'd like to understand this better.  Is there something from the spec we can quote in the code?


See 2.19.7 Data-Mapping Attribute Rules, Clauses, and Directives

> 
> 
>>> Another question is whether the restriction would make sense. For example, does it ever make sense to specify both is_device_ptr and firstprivate for the same variable on a target construct?
>> 
>> On a `target` construct - no.
> 
> Why not?

It is meaningless. That's why it is prohibited in OpenMP 5.0 and allowed only for the combined constructs. These private clauses are applied to inner subconstructs.
For example, `target parallel map(p) private(p)`. In the context of `target` region the variable is mapped while in the `parallel` context it is private.
For `target map(p) private(p)` it is absolutely meaningless.


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