https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119606
Bug ID: 119606
Summary: [15 regression] Commit 'Optimize string constructor'
causes regression in Snappy workload for
-mcpu=neoverse-v2 with LTO
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: jschmitz at gcc dot gnu.org
CC: hubicka at ucw dot cz
Target Milestone: ---
Target: aarch64
Created attachment 60969
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60969&action=edit
Script to reproduce snappy regression
The commit that optimizes string constructors
(https://gcc.gnu.org/g:9c5505a35d9d71705464f9254f55407192d31ec3) causes changes
in performance for the Snappy workload for -mcpu=neoverse-v2, including some
regressions.
In the attachment is a script to reproduce the regressions. It builds GCC from
commits 37f35ebc and 9c5505a3 and runs Snappy with -O3 -Wl,-z,muldefs -lm
-flto=auto -Wl,--sort-section=name -mcpu=neoverse-v2.
Use it like this:
parentdir=<path/to/gcc_src/parentdir> ./snappy_script.sh
As of today, we observed the following runtime changes (values are percentages;
positive values mean that running Snappy from commit 9c5505a3 has longer
runtime than from commit 37f35ebc):
BM_UFlat/4/2 2.92308
BM_UValidate/5/2 -2.9106
BM_UValidate/7/1 2.29277
BM_UValidate/11/1 5.47945
BM_UIOVecSource/0/1 4.00891
BM_UIOVecSource/0/2 6.37636
BM_UIOVecSource/2/1 -3.59375
BM_UIOVecSource/2/2 2.8754
BM_UIOVecSource/4/2 4.42478
BM_UIOVecSource/5/2 2.42424
BM_UIOVecSource/10/2 8.71985
BM_UIOVecSink/3 3.1746
BM_UFlatSink/10/2 2.41935
BM_ZFlat/0/1 3.24826
BM_ZFlat/0/2 6.54952
BM_ZFlat/1/2 2.00501
BM_ZFlat/2/2 4.46735
BM_ZFlat/4/2 4.5045
BM_ZFlat/5/2 2.47678
BM_ZFlat/10/2 9.17782
In the past, we have also seen regressions in other tests, such as UFlat/6/1
and UFlat/6/2.