[PATCH] D42006: AArch64: Omit callframe setup/destroy when not necessary

Matthias Braun via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 23 13:37:56 PST 2018


MatzeB added a comment.

I didn't do in-depth performance tests. In principle this just remove a few "nop" instructions so I didn't expect big changes. The change gives the scheduler a bit more freedom though as there is not instruction redefining SP anymore... Did you only get regressions and no improvements from this?

If you have some conrete differences in assembly that would be intersting to look at. I should have time for detailed analysis at the beginning of next week.

In https://reviews.llvm.org/D42006#985616, @junbuml wrote:

> Hi Matthias,
>
> With this specific change, I found several performance regressions in spec benchmarks on AArch64 
>  In -O3 :
>
>   Spec2006/astar -3.25%
>   Spec2006/povray -5.28%
>   Spec2017/povray -6.08%
>   
>
> In LTO :
>
>   Spec2006/astar -4.20%
>   Spec2006/h264ref -2.15%
>   
>
> For me, it appears that different value was picked for spill, resulting in different spill/reloads in different blocks. Have you run any performance test and observed any reproducible gain or regression?
>
> Thanks,
> Jun



Repository:
  rL LLVM

https://reviews.llvm.org/D42006





More information about the llvm-commits mailing list