ABataev added a comment.

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

> In D65835#1624624 <https://reviews.llvm.org/D65835#1624624>, @ABataev wrote:
>
> > In D65835#1624619 <https://reviews.llvm.org/D65835#1624619>, @jdenny wrote:
> >
> > > In D65835#1624617 <https://reviews.llvm.org/D65835#1624617>, @ABataev 
> > > wrote:
> > >
> > > > Target teams private map will produce extra private in target context, 
> > > > other constructs either.
> > >
> > >
> > > Here's what I tried:
> > >
> > >   int a;
> > >   #pragma omp target teams private(a) map(a)
> > >     ;
> > >
> > >
> > > The same code is generated as for:
> > >
> > >   int a;
> > >   #pragma omp target map(a)
> > >   #pragma omp teams private(a)
> > >     ;
> > >
> > >
> > > I haven't debugged it yet, but it seems orthogonal to whether you have a 
> > > combined directive, which is what this patch is about.
> >
> >
> > Did you check the mapping flags, generated during host codegen? They must 
> > be the same. With private clause it may generate just map(alloc) instead of 
> > map(tofrom).
>
>
> I diffed the `.ll` files for combined vs. separate constructs.  The only 
> difference is the file ID.  `@.offload_maptypes` isn't generated in either 
> (but it is if I replace `private` with `firstprivate`).


Maptypes array must be generated in all cases, check the host codegen.
Also, test codegen with the different kinds of maptypes, not only to from,  but 
also alloc, to, from, etc. Yoh will see the difference in many cases and 2ith 
many kinds of types, not only scalars.


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