[PATCH] D22360: [AArch64] Set COPY ZR isAsCheapAsAMove when needed.

Haicheng Wu via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 14 09:08:27 PDT 2016


haicheng added a comment.

In https://reviews.llvm.org/D22360#484168, @rengolin wrote:

> I'm not sure I understand your argument, or the point of this patch. Can you explain in detail what you're trying to achieve, what are the benchmark numbers you achieve to show that it's a good decision, and what shows it's not a good thing for other cores?


This patch is the third part of https://reviews.llvm.org/D19985.  Similar to Cyclone, Kryo has ZCZeroing feature which means COPY ZR is free.  Cyclone uses general CheapAsAMoveHandling which already sets COPY isCheapAsAMove.  However, Kryo uses custom CheapAsMoveHandling so that I need to set COPY ZR isCheapAsAMove explicitly.

In https://reviews.llvm.org/D19985, @MatzeB suggests maybe I should set any COPY isCheapAsAMove for all the subtargets using custom CheapAsMoveHandling rather than just COPY ZR.  I did the experiments on A57 and Kryo by running spec2006.  The results of A57 is shown in the patch summary which is bad.  On Kryo, setting any COPY isCheapAsAMove improves the geomean of spec2006 by +0.05%, but restricting it to COPY ZR improves the geomean by +0.1%.

Currently, only Kryo has both ZCZeroing and CheapAsMoveHandling features.  https://reviews.llvm.org/D22256 is the second part of https://reviews.llvm.org/D19985 which sets float point register zeroing out isCheapAsAMove.  This patch sets the integer registers.


Repository:
  rL LLVM

https://reviews.llvm.org/D22360





More information about the llvm-commits mailing list