<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Feb 18, 2014 at 7:31 PM, Bob Wilson <span dir="ltr"><<a href="mailto:bob.wilson@apple.com" target="_blank">bob.wilson@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">The APCS stack alignment is only 32 bits. At the time I made that change, we were not able to dynamically realign stack frames for ARM, so it didn’t make sense to have a preferred aggregate alignment larger than 32 bits. Even now, given the cost of dynamic realignment, I don’t think changing that would be a good idea.<br>

<br>
Besides, as I mentioned in the commit message, this change really came from Sandeep Patel, so I blame him for any problems with it ;-)<br></blockquote><div><br></div><div>For those out of the loop, check r163422:</div><div>
<br></div><div><div>sean:~/pg/llvm/llvm % git log -p --grep='unfortunate' CREDITS.TXT                                                                                                       </div><div>commit d2f43b017c4baccd40cb32e27f18d938ef2a47fe</div>
<div>Author: Sandeep Patel <<a href="mailto:deeppatel1987@gmail.com">deeppatel1987@gmail.com</a>></div><div>Date:   Fri Sep 7 21:20:20 2012 +0000</div><div><br></div><div>    Correct an unfortunately necessary typo.</div>
<div>    </div><div>    git-svn-id: <a href="https://llvm.org/svn/llvm-project/llvm/trunk@163422">https://llvm.org/svn/llvm-project/llvm/trunk@163422</a> 91177308-0d34-0410-b5e6-96231b3b80d8</div><div><br></div><div>diff --git a/CREDITS.TXT b/CREDITS.TXT</div>
<div>index f090ad7..7a1bacd 100644</div><div>--- a/CREDITS.TXT</div><div>+++ b/CREDITS.TXT</div><div>@@ -328,10 +328,6 @@ D: LTO tool, PassManager rewrite, Loop Pass Manager, Loop Rotate</div><div> D: GCC PCH Integration (llvm-gcc), llvm-gcc improvements</div>
<div> D: Optimizer improvements, Loop Index Split</div><div> </div><div>-N: Sandeep Patel</div><div>-E: <a href="mailto:deeppatel1987@gmail.com">deeppatel1987@gmail.com</a></div><div>-D: ARM calling conventions rewrite, hard float support</div>
<div>-</div><div> N: Wesley Peck</div><div> E: <a href="mailto:peckw@wesleypeck.com">peckw@wesleypeck.com</a></div><div> W: <a href="http://wesleypeck.com/">http://wesleypeck.com/</a></div><div>@@ -354,6 +350,10 @@ N: Xerxes Ranby</div>
<div> E: <a href="mailto:xerxes@zafena.se">xerxes@zafena.se</a></div><div> D: Cmake dependency chain and various bug fixes</div><div> </div><div>+N: Alex Rosenberg</div><div>+E: <a href="mailto:alexr@leftfield.org">alexr@leftfield.org</a></div>
<div>+D: ARM calling conventions rewrite, hard float support</div><div>+</div><div> N: Chad Rosier</div><div> E: <a href="mailto:mcrosier@apple.com">mcrosier@apple.com</a></div><div> D: ARM fast-isel improvements</div></div>
<div><br></div><div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div class=""><div class="h5"><br>
On Feb 18, 2014, at 4:15 PM, Rafael Espíndola <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<br>
<br>
> On 18 February 2014 18:20, Renato Golin <<a href="mailto:renato.golin@linaro.org">renato.golin@linaro.org</a>> wrote:<br>
>> Gerolf,<br>
>><br>
>> AFAIK, the old APCS never tried to define the alignment of complex<br>
>> aggregates, or the stack.<br>
>><br>
>> What Rafael said is true, it's more of preference (or rather,<br>
>> compatibility), than ABI conformance. But if it's generating<br>
>> regressions, we should look into.<br>
>><br>
>> Being pragmatic, one has to look why that was set in Clang in the<br>
>> first place. Making it the same on both places makes sense (and why<br>
>> it's a good idea to have target descriptions external to both LLVM and<br>
>> Clang, as proposed by Jim), but we need to make sure whoever added it<br>
>> to Clang did it for a reason, and what reason was that.<br>
><br>
> Good point. I did a git blame and found that the clang datalayout was<br>
> changed in r128825 by Bob Wilson, but it looks like he was just<br>
> syncing from llvm-gcc.<br>
><br>
> There might have been a mistake in r128825. llvm-gcc would always just<br>
> ask llvm for a datalayout and the ARM Target back then never specified<br>
> an 'a' alignment for ARM:<br>
><br>
>    DataLayout(Subtarget.isAPCS_ABI() ?<br>
>               std::string("e-p:32:32-f64:32:64-i64:32:64-"<br>
>                           "v128:32:128-v64:32:64-n32") :<br>
>               std::string("e-p:32:32-f64:64:64-i64:64:64-"<br>
>                           "v128:64:128-v64:64:64-n32")),<br>
><br>
> Cheers,<br>
> Rafael<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div></div>