hfinkel added a comment.

In D65835#1623814 <https://reviews.llvm.org/D65835#1623814>, @hfinkel wrote:

> In D65835#1623772 <https://reviews.llvm.org/D65835#1623772>, @ABataev wrote:
>
> > In D65835#1623756 <https://reviews.llvm.org/D65835#1623756>, @kkwli0 wrote:
> >
> > > In D65835#1622042 <https://reviews.llvm.org/D65835#1622042>, @ABataev 
> > > wrote:
> > >
> > > > > I want to be sure we're on the same page: For OpenMP 5.0, should we 
> > > > > allow is_device_ptr with the private clauses?
> > > >
> > > > Yes, since it is allowed by the standard.
> > >
> > >
> > > Umm ... I probably missed some earlier discussions!  What would be the 
> > > behavior of the following code?
> > >
> > >   p = omp_target_alloc(...);
> > >   #pragma omp target private(p) is_device_ptr(p)
> > >     p[...] = ...;   // crash or not?
> > >
> >
> >
> > It must crush, I assume. The main problem is that this construct is allowed 
> > by the standard.
>
>
> Yep. We should add a warning message for it.


Upon further reflection, this is not clearly allowed by the standard. My 
experience is that, when reading standards, sometimes things are disallowed by 
contradiction (i.e., the standard does not define some behavior, and what the 
standard does say that's relevant is self contradictory). In this case, 2.19.3 
says that list items which are privatized (and which are used) undergo 
replacement (with new items created as specified) while 2.12.5 says that "The 
is_device_ptr clause is used to indicate that a list item is a device pointer 
already in the device data environment and that it should be used directly." A 
given list item cannot simultaneously be "used directly" (2.12.5) and also 
undergo replacement: "Inside the construct, all references to the original list 
item are replaced by references to a new list item received by the task or SIMD 
lane" (2.19.3). Thus, it may be disallowed.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D65835



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to