On Mon, Apr 18, 2011 at 11:44 AM, Jan Hubicka <hubi...@ucw.cz> wrote: > Hi, > this patch is result of another pass through ipa-inline.c cleaning up > confused and outdated comments. > > I also fixed accounting of growth caused by the small function inlining. > We do not want to base it on program size before flattening, but afterwards. > Just like always inlines are not (and should not) be accounted. > > I also broked out logic testing whether function should be inlined > as inlined once into want_inline_function_called_once_p. > Since it is now common to see that inlining functions called once > makes a mistake inlining something terribly unimportant that prevents > it to inline hot call later, I added simple logic to inline first > hot edges and cold edges just afterwards. > > Finally I forgot to update recursive call inlining to be driven by frequencies > when profile is missing. > > Bootstrapped/regtested x86_64-linux and comitted. > > * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h > (want_inline_function_called_once_p): Break out the logic from > ipa_inline. > (edge_badness): Ensure that profile is not misupdated. > (lookup_recursive_calls): Prioritize by call frequencies. > (inline_small_functions): Move program size estimates here; > actually process whole queue even when unit growth has been > met. (to properly compute inline_failed reasons and for the > case unit size decrease.) Revisit comments on recursive > inlining. > (ipa_inline): Remove unit summary code; first inline hot calls > of functions called once, cold calls next. > (order, nnodes): Remove unused variables. > * Makefile.in (ipa-inline.o): No longer depent on ggc files. > (GTFILES): Remove ipa-inline.c > * sel-sched.c (fill_insns): Silence uninitialized var warning. >
This caused: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48671 -- H.J.