aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/f95-lang.c
diff options
context:
space:
mode:
authorKewen Lin <linkw@gcc.gnu.org>2019-11-11 05:08:20 +0000
committerKewen Lin <linkw@gcc.gnu.org>2019-11-11 05:08:20 +0000
commit103cba80bd84f0f3c7e644783e1fb7154d07f522 (patch)
treecbaf9f47ba01498059274f3c5abc89e0e54791c8 /gcc/fortran/f95-lang.c
parent4b41bff2977ffb88bf447111b7c2463d4122cb96 (diff)
downloadgcc-103cba80bd84f0f3c7e644783e1fb7154d07f522.zip
gcc-103cba80bd84f0f3c7e644783e1fb7154d07f522.tar.gz
gcc-103cba80bd84f0f3c7e644783e1fb7154d07f522.tar.bz2
[rs6000] Make load cost a bit more in vectorization cost
To align with rs6000_insn_cost costing more for load type insns, this patch is to make load insns cost more in vectorization cost function. The latency of load insns is about twice that of "simple" instructions; 2 vs. 1 on older cores, and 4 (or so) vs. 2 on newer cores. Considering that the result of load usually is used somehow later (true-dep) but store won't, we keep the store as before. The SPEC2017 performance evaluation on Power8 shows 525.x264_r +9.56%, 511.povray_r +2.08%, 527.cam4_r 1.16% gains, no significant degradation, SPECINT geomean +0.88%, SPECFP geomean +0.26%. The SPEC2017 performance evaluation on Power9 shows no significant improvement or degradation, SPECINT geomean +0.04%, SPECFP geomean +0.04%. The SPEC2006 performance evaluation on Power8 shows 454.calculix +4.41% gain but 416.gamess -1.19% and 453.povray -3.83% degradation. I looked into the two degradation bmks, the degradation were NOT due to hotspot changes by vectorization, were all side effects. SPECINT geomean +0.10%, SPECFP geomean no changed considering the degradation. gcc/ChangeLog 2019-11-11 Kewen Lin <linkw@gcc.gnu.org> * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Make scalar_load, vector_load, unaligned_load and vector_gather_load cost more to conform hardware latency and insn cost settings. From-SVN: r278033
Diffstat (limited to 'gcc/fortran/f95-lang.c')
0 files changed, 0 insertions, 0 deletions