diff options
author | Richard Guenther <rguenther@suse.de> | 2011-12-07 11:55:16 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-12-07 11:55:16 +0000 |
commit | f867f13406c41a102d7f52eb9b6412885faa7387 (patch) | |
tree | 9fffcd032d776daaf609efa530de5ce8f0c6d5d3 /gcc/ipa-inline.c | |
parent | df0227c4250e97e8d72b6c29ab90101a7f7885c1 (diff) | |
download | gcc-f867f13406c41a102d7f52eb9b6412885faa7387.zip gcc-f867f13406c41a102d7f52eb9b6412885faa7387.tar.gz gcc-f867f13406c41a102d7f52eb9b6412885faa7387.tar.bz2 |
re PR middle-end/50823 (ICE in inline_small_functions, at ipa-inline.c:1407)
2011-12-07 Richard Guenther <rguenther@suse.de>
PR tree-optimization/50823
* ipa-inline.c (edge_badness): Do not account for the number of
remaining calls.
* gcc.dg/torture/pr50823.c: New testcase.
From-SVN: r182077
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r-- | gcc/ipa-inline.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 59852b5..3cb35e9 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -808,7 +808,6 @@ edge_badness (struct cgraph_edge *edge, bool dump) else if (flag_guess_branch_prob) { int div = edge->frequency * (1<<10) / CGRAPH_FREQ_MAX; - int growth_for_all; div = MAX (div, 1); gcc_checking_assert (edge->frequency <= CGRAPH_FREQ_MAX); @@ -846,14 +845,12 @@ edge_badness (struct cgraph_edge *edge, bool dump) if (dump) fprintf (dump_file, "Badness overflow\n"); } - growth_for_all = estimate_growth (callee); - badness += growth_for_all; if (dump) { fprintf (dump_file, - " %i: guessed profile. frequency %f, overall growth %i," + " %i: guessed profile. frequency %f," " benefit %f%%, divisor %i\n", - (int) badness, (double)edge->frequency / CGRAPH_FREQ_BASE, growth_for_all, + (int) badness, (double)edge->frequency / CGRAPH_FREQ_BASE, relative_time_benefit (callee_info, edge, time_growth) * 100 / 256.0, div); } } |