------- Comment #25 from rguenth at gcc dot gnu dot org 2006-07-19 14:06 ------- Simpler one goes along
@@ -1148,9 +1149,13 @@ cgraph_early_inlining (void) if (node->analyzed && node->local.inlinable && (node->needed || node->reachable) && node->callers) + inlined |= cgraph_decide_inlining_incrementally (node, true); + /* Collect at cgraph roots, which avoid collecting inside cycles. */ + if (inlined + && !node->callers) { - if (cgraph_decide_inlining_incrementally (node, true)) - ggc_collect (); + ggc_collect (); + inlined = false; } } cgraph_remove_unreachable_nodes (true, dump_file); but also has a greater impact on when we collect and when not possibly. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27882