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).