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.

Reply via email to