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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu.org,
                   |                            |rsandifo at gcc dot gnu.org
            Summary|g++ takes excessive time in |[11/12/13/14 Regression]
                   |opt and generate phase; can |g++ takes excessive time in
                   |lead to Segmentation Fault  |opt and generate phase; can
                   |when not enough memory      |lead to Segmentation Fault
                   |available                   |when not enough memory
                   |                            |available
   Last reconfirmed|2018-09-18 00:00:00         |2024-2-16
   Target Milestone|---                         |11.5

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 14:

-O0  800MB in 10s
-O1  1.2GB in 30min (!)

SSA construction (rtl_ssa::function_info::place_phis) takes forever.

 forward prop                       :1669.98 ( 95%)
 combiner                           :  34.80 (  2%)
 TOTAL                              :1749.78

unsurprisingly -fno-forward-propagate helps a lot, compile-time down to 76s.

GCC 11 seems to be similarly slow, stopped after some minutes,
-fno-forward-propagate helps as well (63s).

GCC 10 (no RTL SSA):

-O1  1GB in 70s

 dominance frontiers                :  13.69 ( 19%)
 combiner                           :  36.62 ( 50%)

so there's at least a big regression from GCC 10 here.


The testcase might be a bit large to work with and I didn't profile but
for -O1 we need some "fix" here, even if it might be simply giving up
for some CFG + nregs characteristics that makes things blow up here.

Reply via email to