vkalintiris added a comment.

In http://reviews.llvm.org/D11815#237541, @ahatanak wrote:

> In http://reviews.llvm.org/D11815#236368, @vkalintiris wrote:
>
> > In http://reviews.llvm.org/D11815#235394, @ahatanak wrote:
> >
> > >
> >
>
>
>
>
> > For example, on a Mips target, where the O32 ABI requires either way an 
> > 8-byte alignment, we would generate redundant code for realigning the stack 
> > to a 4-byte alignment if a function contains objects with maximum alignment 
> > of 4-bytes (see attached files to get an idea).
>
>
> I wonder if there is a target or a use case that requires or prefers 
> realigning the stack to an alignment that is smaller than the default stack 
> alignment.  If there is no such target or use case, I think we can just using 
> the existing attribute StackAlignment (with value 0) rather than adding a new 
> function attribute "stackrealign", which will ensure the stack is at least 
> aligned to the default value and force realigning the stack.


I was thinking something similar. I'm not quite sure but the only case I can 
think of, where we might get away with an alignment smaller than the default, 
is when we emit code for the fast calling convention. Other than that, I 
believe that we should duplicate the functionality of 
X86FrameLowering::calculateMaxStackAlign() (or override it in each target 
accordingly).

> The purpose of this patch is to make sure -mstackrealign works when doing LTO


Out of curiosity, I was wondering why dynamic stack realignment isn't enough 
for LTO. I would guess that the alignment of the data types used under SSE 
might have a smaller alignment than the one required by the ABI.


http://reviews.llvm.org/D11815



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

Reply via email to