ABataev added a comment.

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

> I made the following changes, as suggested:
>
> - Add back restriction for OpenMP < 5.0.
> - Remove `is_device_ptr` changes.
>
>   Alexey, you said:
>
> > 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.
>
> I haven't spent enough time exploring codegen here in the past, so I'm 
> starting out by investigating the codegen output for various examples.  I'm 
> looking for differences between a combined `target teams` and an equivalent 
> separate `target` and `teams`.  So far, I see nothing but superficial 
> differences.  Do you have an example where there's an undesirable difference?
>
> Thanks.


Try something like `target parallel firstprivate (a) map(a)`. Currently it will 
create a firstprivate copy of the variable a in target context thought it is 
not required at all. It may lead to increased register pressure and performance 
degradation.


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