[llvm] r174336 - [Stack Alignment] emit warning instead of a hard error

Manman Ren mren at apple.com
Tue Feb 5 10:18:13 PST 2013


We currently do not analyze the source code to check the usage of the low bits.

In the backend, the alignment is already clamped to the correct value, so the backend optimizations will not treat those low bits as zero.

-Manman

On Feb 4, 2013, at 6:08 PM, Eric Christopher <echristo at gmail.com> wrote:

> Also I could be missing it but I couldn't spot the code that checks for the usage of the bits in not aligning/warning/erroring? Quick pointer?
> 
> Thanks!
> 
> -eric
> 
> 
> On Mon, Feb 4, 2013 at 5:41 PM, Eric Christopher <echristo at gmail.com> wrote:
> 
> 
> 
> On Mon, Feb 4, 2013 at 5:35 PM, Manman Ren <mren at apple.com> wrote:
> 
> Yes, there are related discussions in r169197 and "[PATCH] Stack Alignment: clamp the alignment of stack objects in MachineFrameInfo".
> 
> But people can use a 32-byte alignment attribute on a machine which only supports 16-byte stack alignment.
> If the source code further assumes the low bits are zeros, they will get wrong result.
> But if not, a hard error is too much and it will make existing code which can compile with earlier version failed to build with this patch.
> 
> And to use the other side of the argument that won last time :)
> 
> But this means that if people aren't looking at the warning or hard erroring on warnings then we're going to emit bad code instead of making it an error.
> 
> -eric
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130205/3792ea1a/attachment.html>


More information about the llvm-commits mailing list