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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|---                         |15.0

--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The benchmark program needs to be fixed to stop using reserved names that clash
with libstdc++ internals. With that change, GCC 15 performance is close to
Clang's:

tmp$ sed -i  's/_\([_A-Z]\)/\1/g' bench.cpp
tmp$ bash -e  run_bench.sh 
gcc   -O3 -DUNROLL -DWRAP -DFNPTR -DARG:  0.13
clang -O3 -DUNROLL -DWRAP -DFNPTR -DARG:  0.12

gcc   -O3          -DWRAP -DFNPTR -DARG:  0.13
clang -O3          -DWRAP -DFNPTR -DARG:  0.13

gcc   -O3 -DUNROLL        -DFNPTR -DARG:  0.12
clang -O3 -DUNROLL        -DFNPTR -DARG:  0.12

gcc   -O3 -DUNROLL -DWRAP         -DARG:  0.13
clang -O3 -DUNROLL -DWRAP         -DARG:  0.13

gcc   -O3 -DUNROLL -DWRAP -DFNPTR      :  0.13
clang -O3 -DUNROLL -DWRAP -DFNPTR      :  0.14

gcc   -O3                              :  0.12
clang -O3                              :  0.12

gcc   -O2 -DUNROLL -DWRAP -DFNPTR -DARG:  0.20
clang -O2 -DUNROLL -DWRAP -DFNPTR -DARG:  0.13

gcc   -O2          -DWRAP -DFNPTR -DARG:  0.13
clang -O2          -DWRAP -DFNPTR -DARG:  0.14

gcc   -O2 -DUNROLL        -DFNPTR -DARG:  0.19
clang -O2 -DUNROLL        -DFNPTR -DARG:  0.16

gcc   -O2 -DUNROLL -DWRAP         -DARG:  0.15
clang -O2 -DUNROLL -DWRAP         -DARG:  0.14

gcc   -O2 -DUNROLL -DWRAP -DFNPTR      :  0.23
clang -O2 -DUNROLL -DWRAP -DFNPTR      :  0.16

gcc   -O2                              :  0.15
clang -O2                              :  0.13

The slower cases are the ones with -DUNROLL -DFNPTR but libstdc++ no longer
uses an unrolled implementation, so I'm going to close this as fixed.

Reply via email to