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

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
I've noted that we have suspiciously many 'thread' passes but of couse the
transform itself looks not appropriately limited.

Btw, is the compile-time spent in the threading or in followup passes that
blow up with the large number of BBs?

I notice that even at -O1 (ok, with a -O0 compiler and checking enabled but
with -fno-checking) we see:

 tree SSA incremental    :   5.90 (30%) usr   0.02 ( 5%) sys   5.92 (29%) wall 
  8523 kB ( 9%) ggc
 rest of compilation     :   6.51 (33%) usr   0.24 (65%) sys   6.73 (33%) wall 
 49015 kB (50%) ggc
 TOTAL                 :  19.93             0.37            20.32             
97184 kB

Note that we do have quite some passes that exhibit quadraticness in the number
of loops (in some cases at least).  if-conversion comes to my mind here (wrt
dominance compute) and also ISTR some passes doing update-ssa one per function
(the above 30% hint at that).

Reply via email to