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 $

Reply via email to