<div dir="ltr">Hi Hao,<div><br></div><div>I'm not sure about this. Firstly I have concerns about the statistical significance of the difference in results - we've seen swings of +/- 1% on A57, and here we're talking about a 0.5% difference. Are you satisfied that the difference is genuine?</div><div><br></div><div>Secondly, I don't see a good reason why useAA should be worse than !useAA. To my mind, if there is a regression when useAA is enabled, it should be one of two things:</div><div>  1) A legitimate regression, in which case let's fix useAA!</div><div>  2) Random code permutation outside of the compiler's model. If this is the case we shouldn't be adjusting the compiler to compensate.</div><div><br></div><div>useAA has the potential to improve codegen. We're not really using it at the moment, but it's good that it's available to use in the future. If we rip it out, we should have a good reason for it, I think!</div><div><br></div><div>Can I suggest that you make the initial commit, which improves performance, then have a look at why !useAA is better and fix that incrementally?</div><div><br></div><div>Cheers,</div><div><br></div><div>James</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 27 October 2014 08:28, Hao Liu <span dir="ltr"><<a href="mailto:Hao.Liu@arm.com" target="_blank">Hao.Liu@arm.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The performance result shows disable useAA for CortexA57 can have more improvement. The performance improvement result for latest trunk with this patch on CortexA57 are as follows:<br>
Version 1 enable useAA() for CortexA57:<br>
    spec.cpu2006.ref.444_namd   -4.56%<br>
    spec.cpu2006.ref.473_astar  -3.79%<br>
    spec.cpu2006.ref.445_gobmk  -2.91%<br>
Version 2 disable useAA() for CortexA57:<br>
    spec.cpu2006.ref.473_astar  -4.84%<br>
    spec.cpu2006.ref.444_namd   -4.39%<br>
    spec.cpu2006.ref.445_gobmk  -2.80%<br>
Both versions have obvious benefit. But the result on astar of version 2 is much better than version 1. So I've attached a patch removing CortexA57 from useAA(). useAA() is beneficial for in-order target, but it has no obvious improvement on out of order cpu. Currently cyclone, x86 also doesn't useAA(). So I think we don't need useAA for CortexA57.<br>
<span class="im HOEnZb"><br>
<a href="http://reviews.llvm.org/D5864" target="_blank">http://reviews.llvm.org/D5864</a><br>
<br>
Files:<br>
  include/llvm/Transforms/Scalar.h<br>
  lib/Target/AArch64/AArch64Subtarget.h<br>
</span><div class="HOEnZb"><div class="h5">  lib/Target/AArch64/AArch64TargetMachine.cpp<br>
  lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp<br>
  test/CodeGen/AArch64/aarch64-gep-opt.ll<br>
  test/CodeGen/AArch64/arm64-addr-mode-folding.ll<br>
  test/CodeGen/AArch64/arm64-cse.ll<br>
</div></div><br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>