scott.linder added a comment.

In D60967#1476069 <https://reviews.llvm.org/D60967#1476069>, @rjmccall wrote:

> In D60967#1476057 <https://reviews.llvm.org/D60967#1476057>, @scott.linder 
> wrote:
>
> > In D60967#1476029 <https://reviews.llvm.org/D60967#1476029>, @rjmccall 
> > wrote:
> >
> > > Shouldn't it be an error if the user tries to give it hidden visibility?
> >
> >
> > We effectively consider the user explicitly specifying that a symbol is 
> > e.g. a `kernel` to also carry with it visibility information. We don't want 
> > to require the user to redundantly specify that a kernel is not hidden, 
> > when it is never meaningful for it to be hidden.
>
>
> I understand, but if the user explicitly gives it hidden visibility, you 
> should still diagnose that.
>
> Also, shouldn't you just handle this by treating the kernel attribute as a 
> source of explicit visibility at the Sema/AST level?


I agree that we should diagnose it, and I can update the patch accordingly, but 
I'm unsure how to go about emitting a diagnostic from this callback. As far as 
doing this at the AST level, this was my original approach in 
https://reviews.llvm.org/D53153, however this is really more of an AMDGPU 
implementation detail. I don't think it is necessarily the case that every 
OpenCL and Cuda implementation wants/needs require these symbols not have 
hidden visibility.

If we can involve the target in the AST linkage calculations, or agree that in 
general the `kernel` specifier should affect the visibility in this way, along 
with the `__device__` specifier on a variable and the `__global__` specifier on 
a function for Cuda, then moving this up to the AST level makes sense to me.


Repository:
  rC Clang

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

https://reviews.llvm.org/D60967



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

Reply via email to