[Bug target/86448] GCC 9 compiler generates slower code for spec 2006 milc on a power9 using -mcpu=power9 than using -mcpu=power8

meissner at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Aug 1 23:34:00 GMT 2018


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

--- Comment #3 from Michael Meissner <meissner at gcc dot gnu.org> ---
The options I use for spec are:
-O3 -fpeel-loops -funroll-loops -ftree-vectorize -fvect-cost-model
-msave-toc-indirect -mno-pointers-to-nested-functions
-fno-aggressive-loop-optimizations -ffast-math -mveclibabi=mass -mrecip=rsqrt
-mcpu=power<x>

For C files I use: -fgnu89-inline
For C++ files I use: -std=gnu++98
For Fortran files I use: -fstack-arrays

I use -fno-strict-aliasing on milc (and perlbench) due to it playing pointer
games that earlier compilers would generate the wrong code for.  If memory
serves, the -fno-strict-aliasing may not show the bug on power{7,8,9} systems. 
I know in the perlbench case, the code in spec violates the ISO C standard.  I
don't recall what the milc code is.

I use -fno-aggressive-loop-optimizations because some of the benchmarks as
written go beyond the end of arrays, and GCC over-optimizes these.

I use version 8.1.3 of the MASS library.  However, milc is not one of the
benchmarks that heavily use the math library, so you can omit using MASS and
-mveclibabi=mass.


More information about the Gcc-bugs mailing list