rjmccall added a comment.

In D99791#2672528 <https://reviews.llvm.org/D99791#2672528>, @lebedev.ri wrote:

> @rjmccall thank you for taking a look!
>
> In D99791#2670333 <https://reviews.llvm.org/D99791#2670333>, @rjmccall wrote:
>
>> The last major conversation we had about this was this RFC I sent out about 
>> five years ago:
>>
>>   https://lists.llvm.org/pipermail/llvm-dev/2016-January/094012.html
>>
>> In that RFC, I specifically argued that we should not do this, and that it 
>> should only be considered undefined behavior to actually access memory 
>> through a misaligned pointer (for a particular definition of "access 
>> memory").  At Apple, we have made that a promise to our internal users, so 
>> even if we decide to do this, we will need to not do it on Darwin.  However, 
>> as I remember it, the LLVM community did not reach a consensus to adopt my 
>> recommendation, so in principle we still have the flexibility to start doing 
>> this.  I continue to believe that doing so would be a mistake.  At any rate, 
>> you should start by reading that thread.
>
> Thank you for the pointer!
> I can for sure provide an opt-out, however note that in the end it will cause 
> performance regressions as compared to the current LLVM optimizations.

How so?  We do not currently assume that pointer arguments are aligned, or even 
dereferenceable.

I don't mind making stronger assumptions about the C++ `this` argument, but we 
really should not do this for arbitrary pointer arguments.  If you want to put 
together a UBSan mode that checks this, that's fine, but I do not think there 
is a path forward for actually optimizing based on this assumption by default.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D99791

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

Reply via email to