https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117695
Bug ID: 117695
Summary: lto got zero score on unixbench dhry2reg on trunk
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: koule2333 at gmail dot com
Target Milestone: ---
Created attachment 59640
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59640&action=edit
dhry_1.c dhry_2.c dhry.h timeit.c
I am using flto for unixbench but got zero score on dhry2reg, which is
unexpected.
It looks like finline-small-functions and flto lead to whole loop elimination.
Is there anyone konws more details about that?
My commands are as below:
gcc -c -DTIME -Wall -pedantic -ansi -DREG=register -DHZ= -O3
-fomit-frame-pointer -fforce-addr -ffast-math -Wall -flto dhry_1.c -o
dhry_1_reg.o
gcc -c -DTIME -Wall -pedantic -ansi -DREG=register -DHZ= -O3
-fomit-frame-pointer -fforce-addr -ffast-math -Wall -flto dhry_2.c -o
dhry_2_reg.o
gcc -o dhry2reg -DTIME -Wall -pedantic -ansi -O3 -fomit-frame-pointer
-fforce-addr -ffast-math -Wall -flto dhry_1_reg.o dhry_2_reg.o
./dhry2reg 1
and got COUNT|1|1|lps, the loop index is 1.
gcc -c -DTIME -Wall -pedantic -ansi -DREG=register -DHZ= -O3
-fomit-frame-pointer -fforce-addr -ffast-math -Wall dhry_1.c -o dhry_1_reg.o
gcc -c -DTIME -Wall -pedantic -ansi -DREG=register -DHZ= -O3
-fomit-frame-pointer -fforce-addr -ffast-math -Wall dhry_2.c -o dhry_2_reg.o
gcc -o dhry2reg -DTIME -Wall -pedantic -ansi -O3 -fomit-frame-pointer
-fforce-addr -ffast-math -Wall dhry_1_reg.o dhry_2_reg.o
./dhry2reg 1
and got COUNT|43740576|1|lps, the loop index is 43740576.
And you can get dhry_1.c and dhry_2.c in attachment.
Same problem on gcc-11 gcc-12 and gcc-14, except gcc-10.