MaskRay added a comment.

In D88712#2333294 <https://reviews.llvm.org/D88712#2333294>, @rsmith wrote:

> If the answer is that we consider (2) to be incorrect, but that this is only 
> a partial step in that direction, I think that's fine -- that's enough that 
> we can know where the bug is if / when people complain that we still generate 
> calls to `memcpy` even when we used an `asm` label to indicate the library 
> symbol was renamed to something else. In that light, this is really a 
> workaround rather than a fix: we can't easily stop the middle-end from 
> synthesizing calls to library functions with the wrong symbol, because we 
> don't have a good way to tell it those library functions were renamed, but we 
> can at least reduce the rate of incidence by avoiding generating the 
> intrinsic calls that are likely to get lowered to library functions.
>
> Given that understanding, should this:
>
>   double sin(double x) asm("real_sin");
>   double f(double d) { return __builtin_sin(d); }
>
> ... call the `sin` symbol or the `real_sin` symbol? I think with the current 
> patch it'll call the `sin` symbol, but calling `real_sin` seems correct.
>
> In any case, assuming the above understanding is right, this looks like a 
> step in the right direction.

Thanks for the review! For this example, GCC emits `real_sin` but we fail to do 
so. Added it to the test.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88712

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

Reply via email to