diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2015-01-16 04:05:31 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2015-01-16 03:05:31 +0000 |
commit | 52d36202068b019e775412712d57c6f6d451ac97 (patch) | |
tree | 3c8887900248c868cb2ad60898e6839ee8cd5177 /gcc/ipa-inline.c | |
parent | cb054b6341634a175d00fccf3ca07bcddaa69765 (diff) | |
download | gcc-52d36202068b019e775412712d57c6f6d451ac97.tar.gz |
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
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r-- | gcc/ipa-inline.c | 13 |
1 files changed, 12 insertions, 1 deletions
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 |