https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118801
Bug ID: 118801
Summary: Excessive compile time with -g -O2 -fpeel-loops
-fno-var-tracking
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: dcb314 at hotmail dot com
Target Milestone: ---
Created attachment 60427
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60427&action=edit
C source code
The attached C code, when compiled by a recent gcc trunk compiler,
does this:
foundBugs $ (ulimit -t 60; time ../results/bin/gcc -c -w -g -O2
-fno-var-tracking bug1088.c)
real 0m0.342s
user 0m0.319s
sys 0m0.018s
foundBugs $ (ulimit -t 60; time ../results/bin/gcc -c -w -g -O3
-fno-var-tracking bug1088.c)
real 0m26.633s
user 0m24.587s
sys 0m1.671s
foundBugs $
Around an 80 times longer compile time. gcc 14.2.0 doesn't seem much better:
foundBugs $ (ulimit -t 60; time ../results.14.2.0/bin/gcc -c -w -g -O2
-fno-var-tracking bug1088.c)
real 0m1.813s
user 0m0.334s
sys 0m0.085s
foundBugs $ (ulimit -t 60; time ../results.14.2.0/bin/gcc -c -w -g -O3
-fno-var-tracking bug1088.c)
real 0m24.967s
user 0m23.146s
sys 0m1.487s
foundBugs $
Nor does gcc-13.2:
foundBugs $ (ulimit -t 60; time ../results.13.2.asan.ubsan/bin/gcc -c -w -g
-O2 -fno-var-tracking bug1088.c)
real 0m1.937s
user 0m0.284s
sys 0m0.055s
foundBugs $ (ulimit -t 60; time ../results.13.2.asan.ubsan/bin/gcc -c -w -g
-O3 -fno-var-tracking bug1088.c)
real 0m22.851s
user 0m21.228s
sys 0m1.349s
foundBugs $
Of all the flags that make the difference from -O2 to -O3, flag
-fpeel-loops seems to be the culprit:
foundBugs $ (ulimit -t 60; time ../results/bin/gcc -c -w -g -O2 -fpeel-loops
-fno-var-tracking bug1088.c)
real 0m22.167s
user 0m20.269s
sys 0m1.560s
foundBugs $