tra added a comment.

In D79344#2018628 <https://reviews.llvm.org/D79344#2018628>, @hliao wrote:

> In D79344#2018561 <https://reviews.llvm.org/D79344#2018561>, @tra wrote:
>
> > This has a good chance of breaking existing code. It would be great to add 
> > an escape hatch option to revert to the old behavior if we run into 
> > problems. The change is relatively simple, so reverting it in case 
> > something goes wrong should work, too. Up to you.
>
>
> Why? for the cases addressed in this patch, if there is existing code, it 
> won't be compiled to generate module file due to the missing symbol. Anything 
> missing?


Logistics, mostly.

Overloading is a rather fragile area of CUDA. This is the area where clang and 
NVCC behave differently. Combined with the existing code that needs to work 
with both compilers, even minor changes in compiler behavior can result in 
unexpected issues. Stricter checks tend to expose existing code which happens 
to work (or to compile) when it should not have, but it's not always trivial to 
fix those quickly. Having an escape hatch allows us to deal with those issues. 
It allows the owner of the code to reproduce the problem while the rest of the 
world continues to work. Reverting is suboptimal as the end user is often not 
in a good position to build a compiler with your patch plumbed in and then 
plumb the patched compiler into their build system. Adding another compiler 
option to enable/disable the new behavior is much more manageable.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D79344



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

Reply via email to