https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38518
--- Comment #15 from David Binderman <dcb314 at hotmail dot com> --- (In reply to David Binderman from comment #12) > With recent gcc: > > no -O flag: 2 seconds > > -O2: 24 seconds > > -O3: 247 seconds Those numbers for a version of trunk gcc with lots of checking. Without checking, I get gcc trunk with -O3 in 4 mins 56 seconds and release gcc 7.1.1 in 3 minutes 38 seconds, so it still looks like it's going backwards. From -ftime-report on trunk gcc with -O3: $ grep "([0-9][0-9]\%) usr" report.out df live&initialized regs: 45.04 (16%) usr 0.06 ( 2%) sys 45.74 (15%) wall 0 kB ( 0%) ggc load CSE after reload : 174.76 (60%) usr 0.07 ( 2%) sys 176.23 (60%) wall 10 kB ( 0%) ggc $ So I think that confirms what Richard is seeing.