rjmccall added a comment.

In D80237#2062991 <https://reviews.llvm.org/D80237#2062991>, @arsenm wrote:

> In D80237#2058108 <https://reviews.llvm.org/D80237#2058108>, @rjmccall wrote:
>
> > In D80237#2055902 <https://reviews.llvm.org/D80237#2055902>, @arsenm wrote:
> >
> > > In D80237#2051933 <https://reviews.llvm.org/D80237#2051933>, @rjmccall 
> > > wrote:
> > >
> > > > Okay.  Can you explain why we need to coerce in the first place, 
> > > > though?  Especially if the representation is the same, why is your 
> > > > target-lowering requiring parameters to be coerced to involve pointers 
> > > > in a different address space?
> > >
> > >
> > > It's not a requirement, but an optimization. The pointer representation 
> > > is the same, but there's a penalty to using the generic pointer. From the 
> > > language context here, we know the flat pointer can never alias the 
> > > non-global address spaces.
> >
> >
> > Is that because it's a kernel argument?  I don't understand how the 
> > coercion can work in general for structs that just contain pointers.
>
>
> Yes, there's no valid way to pass a non-global address space pointer through 
> a flat pointer into a kernel. This doesn't apply in other contexts


Okay.  And you can't just treat kernel parameters specially in your pass that 
un-promotes generic pointers back to global pointers?  Or is that pass not 
quite so precise as that?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D80237



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

Reply via email to