From: Jan Hubicka Date: Fri, 16 Jan 2015 03:05:31 +0000 (+0100) Subject: ipa-inline.c (inline_small_functions): Work around hints cache issue. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=52d36202068b019e775412712d57c6f6d451ac97;p=gcc.git ipa-inline.c (inline_small_functions): Work around hints cache issue. * ipa-inline.c (inline_small_functions): Work around hints cache issue. From-SVN: r219702 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 62735a7a77e..dd7aa74762b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-01-15 Jan Hubicka + + * ipa-inline.c (inline_small_functions): Work around hints + cache issue. + 2015-01-15 Sandra Loosemore PR target/59710 diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 1a227a26380..f270cfa58f3 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -1655,7 +1655,18 @@ inline_small_functions (void) reset_edge_growth_cache (edge); gcc_assert (old_size_est == estimate_edge_size (edge)); gcc_assert (old_time_est == estimate_edge_time (edge)); - gcc_assert (old_hints_est == estimate_edge_hints (edge)); + /* FIXME: + + gcc_assert (old_hints_est == estimate_edge_hints (edge)); + + fails with profile feedback because some hints depends on + maybe_hot_edge_p predicate and because callee gets inlined to other + calls, the edge may become cold. + This ought to be fixed by computing relative probabilities + for given invocation but that will be better done once whole + code is converted to sreals. Disable for now and revert to "wrong" + value so enable/disable checking paths agree. */ + edge_growth_cache[edge->uid].hints = old_hints_est + 1; /* When updating the edge costs, we only decrease badness in the keys. Increases of badness are handled lazilly; when we see key with out