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 $