https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117932
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- With -fno-ext-dce -fno-fold-mem-offsets on trunk the identified regressions distribute to if-conversion 2 : 3.98 ( 2%) 55k ( 0%) `- dominance computation : 1.02 ( 0%) 0 ( 0%) `- loop init : 0.20 ( 0%) 1512 ( 0%) `- df live regs : 17.28 ( 7%) 0 ( 0%) `- df live&initialized regs : 15.76 ( 6%) 0 ( 0%) hard reg cprop : 4.05 ( 2%) 9072 ( 0%) `- df reg dead/unused notes : 0.11 ( 0%) 278k ( 0%) `- df live regs : 11.19 ( 4%) 0 ( 0%) `- df live&initialized regs : 10.37 ( 4%) 0 ( 0%) reorder blocks : 13.82 ( 5%) 4663M ( 80%) `- rebuild jump labels : 0.04 ( 0%) 0 ( 0%) `- cfg cleanup : 1.41 ( 1%) 904 ( 0%) a quick theory is that sinking increases the number of BBs by sinking into empty forwarders (that might have been created by splitting critical edges). > grep '<bb [^>]*>.*:' all.i.151t.pre | wc -l 46800 > grep '<bb [^>]*>.*:' all.i.152t.sink1 | wc -l 51971 mostly caused by sink operations - ___host_label_270380 = _19861->host_label; _19864 = _19861->host; if (_19864 == ___H__20_all_2e_o1) - goto <bb 6>; [98.00%] + goto <bb 7431>; [98.00%] else - goto <bb 46003>; [2.00%] + goto <bb 51173>; [2.00%] + + <bb 7431> [local count: 396545]: + ___host_label_270380 = _19861->host_label; + goto <bb 7>; [100.00%] compared to disabling sinking alltogether sinking increases BB count from 46853 to 52024 at .optimize. This doesn't immediately explain a 100% increase in compile-time, when this pushes the bitmap work set from cache to main memory it might.