aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-12-07 11:55:16 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-12-07 11:55:16 +0000
commitf867f13406c41a102d7f52eb9b6412885faa7387 (patch)
tree9fffcd032d776daaf609efa530de5ce8f0c6d5d3 /gcc/ipa-inline.c
parentdf0227c4250e97e8d72b6c29ab90101a7f7885c1 (diff)
downloadgcc-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.c7
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);
}
}