[llvm] 8e3f59b - [AArch64] Add option to enable/disable load-store renaming.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 17 08:52:21 PST 2020


Hi,

> On 17 Feb 2020, at 17:39, Maxim Kuvyrkov <maxim.kuvyrkov at linaro.org> wrote:
> 
> Hi Florian,
> 
> This change regresses performance of 464.h264ref (from SPEC CPU2006) by 6% on aarch64-linux-gnu.  This happens due to 40% regression in FastFullPelBlockMotionSearch().
> 
> This patch looks like a no-op, but, apparently, it's not.  Is it expected that it's not a no-op?
> 

Yes I think that is expected. This patch adds an option to disable the register renaming in the AArch64 load/store optimiser (which got added around November/December 2019) and disables it by default. This means fewer store pairs are generated probably causing the regression. Enabling aarch64-load-store-renaming should restore the performance.

The reason for disabling it is that we found a mis-compile caused by the renaming. I am still looking into tracking down the mis-compile, but unfortunately the mis-compile is in an internal app that is quite tricky to build.

For the 10.0 release, I think the option should be disabled to avoid shipping with a known issue.

For master, we could turn it on again, which might turn up a better reproducer. What do you think?

Cheers,
Florian 



More information about the llvm-commits mailing list