[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