[PATCH] AArch64: Use CMP;CCMP sequences for and/or/setcc trees.

Matthias Braun matze at braunis.de
Wed Mar 11 16:37:56 PDT 2015


I investigated the performance changes in depth showing the change improves things:

- Most of the changes were noise. I did not consider anything changing less than 0.3%
- 9 Benchmarks improve (between 0.3% and 1.7%)
- 2 Regressions I have seen stem from the fact that we generate code for the left operand of the or first while previously we would first produce it for the right operand of the OR, this led to a case of MachineGVN not firing and another case where the slightly more limited range of immediates on ccmp compared to cmp mattered. Changing the code to handle the right side of the AND/OR first improved out luck...
- There is a regression 464.h264ref (0.5%) and 400.perlbench(0.4%). I couldn't see any obvious reasons when comparing the generated code, in fact many places improved. So I'm blaming cache effects and/or measuring noise.


REPOSITORY
  rL LLVM

http://reviews.llvm.org/D8232

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list