This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/80930] REE pass causes high memory usage via df_mir_alloc() with ASAN+UBSAN turned on


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80930

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |memory-hog
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-06-01
          Component|middle-end                  |rtl-optimization
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
#3  0x0000000000c8d454 in df_analyze_problem (n_blocks=299166,
postorder=0x17168b2e0, blocks_to_consider=<optimized out>, dflow=0x16b830fb0)
at ../../gcc/df-core.c:1165
^^^

so it looks like the MIR probem is quadratic somehow (well, I can easily see
that it is, if sth is must-initialized in BB N then it is must-initialized in
all post-dominators).  REE should cap itself on some reasonably large
n_blocks * number_of_pseudos, at least at -O1 (which we recommend to
insanely large code bases).

Or it should work on sub-CFGs or simply only disable the cases that absoultely
need MIR info if the problem gets too large.

Confirmed by virtue of looking even w/o a testcase.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]