https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69609
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Keywords| |compile-time-hog, | |memory-hog Last reconfirmed| |2016-02-02 Component|c |rtl-optimization CC| |rguenth at gcc dot gnu.org Ever confirmed|0 |1 Summary|block reordering consumes |[6 Regression] block |an inordinate amount of |reordering consumes an |time |inordinate amount of time, | |REE consumes much memory Target Milestone|--- |6.0 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Also takes a lot of memory with GCC 4.9 at least (killed at 2Gb). GCC 5 seems to peak at ~1.6GB. Note that with this kind of generated code I _always_ recommend -O1. -O2 simply has too many quadraticnesses. This case is a load of indirect jumps and loops and thus a very twisted CFG. I'd say the number of BBs hits the BB reordering slowness. First memory peak is for RTL pre (400MB), then rest_of_handle_ud_dce (800MB), then REE (on trunk 2.1GB!). All basically DF issues. It looks like we leak somewhere as well. Thus first tracking the memory-use regression towards GCC 5 at -O2. -O1 behaves reasonably (300MB memory use, 30sec compile-time for GCC 6), only out-lier is df live&initialized regs: 11.51 (39%) usr 0.08 ( 9%) sys 11.47 (37%) wall 0 kB ( 0%) ggc well, we know DF is slow and memory hungry.