Artem-B wrote:

> So the language options are not guaranteed to be the same between the host 
> and device compilations? 

I think it's more of the case that builtins are rarely tagged as 
language-specific, so, as implemented, this filtering is a very blunt hammer, 
even if we do consistently filter out builtins the same way in both host and 
device compilations. Given that `Languages` is also contaminated with 
non-language things like MS_LANG, it's just not quite suitable for making the 
call whether some builtin should be visible.

> It sounds like really what we need here then is something like a 
> __aux_target_has_builtin

It could have some uses, but a bigger question would be -- how far would we 
want to propagate it into headers that are otherwise agnostic of heterogeneous 
compilations. If we do want to make headers reliably interoperable between 
host/device, it's a much bigger problem, considering that there are multiple 
ways of doing it, each with their own quirks. For now we've been getting by 
with a case by case workarounds. I'm doubtful that we'll ever have a universal 
solution.


https://github.com/llvm/llvm-project/pull/154217
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to