[PATCH] D65835: [OpenMP] Permit map with DSA on combined directive

Alexey Bataev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Aug 11 14:47:46 PDT 2019


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





More information about the cfe-commits mailing list