performance regression on sphereflake

Gerolf Hoflehner ghoflehner at apple.com
Wed Feb 19 00:30:26 PST 2014


Thanks Rafael, Renato and others for the history and discussions . This regression felt a bit fishy from the beginning, and I agree with the “bug rather than feature” assessment.  


Gerolf

On Feb 18, 2014, at 4:38 PM, Sean Silva <silvas at purdue.edu> wrote:

> 
> 
> 
> On Tue, Feb 18, 2014 at 7:31 PM, Bob Wilson <bob.wilson at apple.com> wrote:
> 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.
> 
> Besides, as I mentioned in the commit message, this change really came from Sandeep Patel, so I blame him for any problems with it ;-)
> 
> For those out of the loop, check r163422:
> 
> sean:~/pg/llvm/llvm % git log -p --grep='unfortunate' CREDITS.TXT                                                                                                       
> commit d2f43b017c4baccd40cb32e27f18d938ef2a47fe
> Author: Sandeep Patel <deeppatel1987 at gmail.com>
> Date:   Fri Sep 7 21:20:20 2012 +0000
> 
>     Correct an unfortunately necessary typo.
>     
>     git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163422 91177308-0d34-0410-b5e6-96231b3b80d8
> 
> diff --git a/CREDITS.TXT b/CREDITS.TXT
> index f090ad7..7a1bacd 100644
> --- a/CREDITS.TXT
> +++ b/CREDITS.TXT
> @@ -328,10 +328,6 @@ D: LTO tool, PassManager rewrite, Loop Pass Manager, Loop Rotate
>  D: GCC PCH Integration (llvm-gcc), llvm-gcc improvements
>  D: Optimizer improvements, Loop Index Split
>  
> -N: Sandeep Patel
> -E: deeppatel1987 at gmail.com
> -D: ARM calling conventions rewrite, hard float support
> -
>  N: Wesley Peck
>  E: peckw at wesleypeck.com
>  W: http://wesleypeck.com/
> @@ -354,6 +350,10 @@ N: Xerxes Ranby
>  E: xerxes at zafena.se
>  D: Cmake dependency chain and various bug fixes
>  
> +N: Alex Rosenberg
> +E: alexr at leftfield.org
> +D: ARM calling conventions rewrite, hard float support
> +
>  N: Chad Rosier
>  E: mcrosier at apple.com
>  D: ARM fast-isel improvements
> 
> 
> -- Sean Silva
>  
> 
> On Feb 18, 2014, at 4:15 PM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:
> 
> > On 18 February 2014 18:20, Renato Golin <renato.golin at linaro.org> wrote:
> >> Gerolf,
> >>
> >> AFAIK, the old APCS never tried to define the alignment of complex
> >> aggregates, or the stack.
> >>
> >> What Rafael said is true, it's more of preference (or rather,
> >> compatibility), than ABI conformance. But if it's generating
> >> regressions, we should look into.
> >>
> >> Being pragmatic, one has to look why that was set in Clang in the
> >> first place. Making it the same on both places makes sense (and why
> >> it's a good idea to have target descriptions external to both LLVM and
> >> Clang, as proposed by Jim), but we need to make sure whoever added it
> >> to Clang did it for a reason, and what reason was that.
> >
> > Good point. I did a git blame and found that the clang datalayout was
> > changed in r128825 by Bob Wilson, but it looks like he was just
> > syncing from llvm-gcc.
> >
> > There might have been a mistake in r128825. llvm-gcc would always just
> > ask llvm for a datalayout and the ARM Target back then never specified
> > an 'a' alignment for ARM:
> >
> >    DataLayout(Subtarget.isAPCS_ABI() ?
> >               std::string("e-p:32:32-f64:32:64-i64:32:64-"
> >                           "v128:32:128-v64:32:64-n32") :
> >               std::string("e-p:32:32-f64:64:64-i64:64:64-"
> >                           "v128:64:128-v64:64:64-n32")),
> >
> > Cheers,
> > Rafael
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140219/6428ba9f/attachment.html>


More information about the llvm-commits mailing list