jdoerfert added a comment.

In D74387#1964483 <https://reviews.llvm.org/D74387#1964483>, @Fznamznon wrote:

> In D74387#1950593 <https://reviews.llvm.org/D74387#1950593>, @jdoerfert wrote:
>
> > This is needed for OpenMP as well. Does it make sense to include it in this 
> > patch or in another one?
>
>
> I thought OpenMP already has diagnostics for unsupported types (at least 
> looking into this commit 
> https://github.com/llvm/llvm-project/commit/123ad1969171d0b22d0c5d0ec23468586c4d8fa7).
>  Am I wrong?
>  The diagnostic which I'm implementing here is stricter than existing OpenMP 
> diagnostic, the main goal is do not emit unsupported type at all. Does OpenMP 
> need such restriction as well?


OpenMP handling needs to be reverted/redone:

1. If no aux triple is available it just crashes.
2. If the unavailable type is not used in one of the pattern matched 
expressions it crashes (usually during instruction selection but not always). 
Try a call with long double arguments for example.

I'm not sure this patch fits the bill but what I was thinking we need is 
roughly:
If you have a expression with operands or function definition with 
return/argument types which are not supported on the target, mark the 
definition as unavailable with the type note you have.
We should especially allow members to have unavailable types if the member is 
not accessed. Memcpy like operations (=mapping) are OK though. I think this 
should be the same for OpenMP and Sycl (and HIP, and ...).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D74387



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

Reply via email to