Discussion:
[patch] Excessive alignment in ix86_data_alignment
Kirill Yukhin
2014-10-09 08:25:03 UTC
Permalink
Hi,
I have measured performance impact on Haswell platform according to this
https://gcc.gnu.org/ml/gcc-patches/2014-06/msg00978.html
Same in plain text:
For `-O2':
Test Previous Current Ratio(%)
400.perlbench 46.2000 46.2000 +0%
401.bzip2 29.0000 29.0000 +0%
403.gcc 41.0000 41.2000 +0.48%
429.mcf 53.7000 53.3000 -0.74%
445.gobmk 32.3000 32.3000 +0%
456.hmmer 32.3000 32.3000 +0%
458.sjeng 36.1000 36.4000 +0.83%
462.libquantum 84.5000 84.3000 -0.23%
464.h264ref 64.4000 64.4000 +0%
471.omnetpp 27.7000 27.9000 +0.72%
473.astar 28.1000 28.0000 -0.35%
483.xalancbmk 49.9000 50.2000 +0.60%
410.bwaves 93.2000 93.4000 +0.21%
416.gamess 41.9000 41.8000 -0.23%
433.milc 37.9000 37.8000 -0.26%
434.zeusmp 48.5000 48.4000 -0.20%
435.gromacs 32.5000 32.6000 +0.30%
436.cactusADM 82.8000 80.9000 -2.29%
437.leslie3d 55.6000 55.7000 +0.17%
444.namd 32.1000 32.1000 +0%
447.dealII 67.5000 67.5000 +0%
450.soplex 48.0000 47.9000 -0.20%
453.povray 58.3000 58.4000 +0.17%
454.calculix 37.6000 37.6000 +0%
459.GemsFDTD 44.5000 44.7000 +0.44%
465.tonto 28.6000 28.6000 +0%
470.lbm 67.9000 67.8000 -0.14%
481.wrf 49.4000 49.5000 +0.20%
482.sphinx3 68.7000 68.6000 -0.14%
Geomeans:
INT 41.14 41.18 +0.11%
FP 49.82 49.76 -0.12%
ALL 46.03 46.01 -0.02%

For `-O3':
Test Previous Current Ratio(%)
400.perlbench 46.2000 46.2000 +0%
401.bzip2 29.0000 29.1000 +0.34%
403.gcc 41.1000 41.2000 +0.24%
429.mcf 53.4000 54.6000 +2.24%
445.gobmk 32.3000 32.3000 +0%
456.hmmer 32.3000 32.3000 +0%
458.sjeng 36.1000 36.4000 +0.83%
462.libquantum 84.0000 84.8000 +0.95%
464.h264ref 64.2000 64.3000 +0.15%
471.omnetpp 27.6000 27.8000 +0.72%
473.astar 28.0000 28.0000 +0%
483.xalancbmk 50.1000 49.8000 -0.59%
410.bwaves 93.5000 93.6000 +0.10%
416.gamess 41.8000 41.9000 +0.23%
433.milc 37.8000 37.8000 +0%
434.zeusmp 48.5000 48.4000 -0.20%
435.gromacs 32.6000 32.4000 -0.61%
436.cactusADM 80.4000 81.2000 +0.99%
437.leslie3d 55.7000 55.7000 +0%
444.namd 32.1000 32.1000 +0%
447.dealII 67.6000 67.6000 +0%
450.soplex 48.6000 48.2000 -0.82%
453.povray 58.3000 58.5000 +0.34%
454.calculix 37.6000 37.6000 +0%
459.GemsFDTD 44.7000 44.6000 -0.22%
465.tonto 28.6000 28.6000 +0%
470.lbm 68.1000 68.1000 +0%
481.wrf 49.5000 49.6000 +0.20%
482.sphinx3 68.5000 68.0000 -0.72%
Geomeans:
INT 41.08 41.25 +0.41%
FP 49.80 49.78 -0.04%
ALL 45.99 46.06 +0.14%

--
Thanks, K
Uros Bizjak
2014-10-09 08:37:12 UTC
Permalink
Hi,
I have measured performance impact on Haswell platform according to this
https://gcc.gnu.org/ml/gcc-patches/2014-06/msg00978.html
What about older processors?

The optimization was introduced well before Haswell for then current
processors, and it was based on the recommendation from Intel
optimization guide. If this optimization doesn't apply for new
processors, then tune option should be introduced and set accordingly.

Uros.
H.J. Lu
2014-10-09 15:25:30 UTC
Permalink
Post by Uros Bizjak
Hi,
I have measured performance impact on Haswell platform according to this
https://gcc.gnu.org/ml/gcc-patches/2014-06/msg00978.html
Kirill, please mention:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61296

in your ChangeLog.
Post by Uros Bizjak
What about older processors?
Kirill, please collect data on Nehelam/Westmere, Sandybrigde/Ivybride
and Silvermont.
Post by Uros Bizjak
The optimization was introduced well before Haswell for then current
processors, and it was based on the recommendation from Intel
optimization guide. If this optimization doesn't apply for new
processors, then tune option should be introduced and set accordingly.
I believe the original excessive alignment was introduced by cut/paste
from

https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=ed45e834f305d1f2709bf200a13d5beebc2fcfee

to improve x86 FP performance, which might be partially copied from
CONSTANT_ALIGNMENT:

https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=f7d6703c5d83fc9fb06246d6eb49e9b61098045c
--
H.J.
Loading...