aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-12-13 12:54:57 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-12-13 12:54:57 +0000
commita5c3d18c25527d20882a575274f2a06a73f54863 (patch)
treed2ad875ff89b9da4d794288131abd4cb659df04a /gcc
parent4634c03b7253ad80fcec0435307a9e67a30cd5f4 (diff)
downloadgcc-a5c3d18c25527d20882a575274f2a06a73f54863.zip
gcc-a5c3d18c25527d20882a575274f2a06a73f54863.tar.gz
gcc-a5c3d18c25527d20882a575274f2a06a73f54863.tar.bz2
re PR tree-optimization/51519 (ICE: in inline_small_functions, at ipa-inline.c:1410 with -O -fno-guess-branch-probability -findirect-inlining)
2011-12-13 Richard Guenther <rguenther@suse.de> PR tree-optimization/51519 * ipa-inline.c (edge_badness): Use edge growth in non-guessed branch probability case as well. * gcc.dg/pr51519.c: New testcase. From-SVN: r182279
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-inline.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr51519.c39
4 files changed, 51 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index efb5302..df45f44 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-12-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/51519
+ * ipa-inline.c (edge_badness): Use edge growth in non-guessed
+ branch probability case as well.
+
2011-12-13 Revital Eres <revital.eres@linaro.org>
* modulo-sched.c (mark_loop_unsched): Free bbs.
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 3cb35e9..14bd89a 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -861,7 +861,7 @@ edge_badness (struct cgraph_edge *edge, bool dump)
else
{
int nest = MIN (inline_edge_summary (edge)->loop_depth, 8);
- badness = estimate_growth (callee) * 256;
+ badness = growth * 256;
/* Decrease badness if call is nested. */
if (badness > 0)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 70269cd..5de35b0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2011-12-13 Richard Guenther <rguenther@suse.de>
+ PR tree-optimization/51519
+ * gcc.dg/pr51519.c: New testcase.
+
+2011-12-13 Richard Guenther <rguenther@suse.de>
+
* gcc.dg/lto/20111213-1_0.c: New testcase.
2011-12-13 Eric Botcazou <ebotcazou@adacore.com>
diff --git a/gcc/testsuite/gcc.dg/pr51519.c b/gcc/testsuite/gcc.dg/pr51519.c
new file mode 100644
index 0000000..3d5d3f24
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr51519.c
@@ -0,0 +1,39 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fno-guess-branch-probability -findirect-inlining" } */
+
+void fe (void);
+int i;
+
+static inline void
+FX (void (*f) (void))
+{
+ fe ();
+ (*f) ();
+}
+
+static inline void
+f4 ()
+{
+ if (i)
+ FX (fe);
+}
+
+static inline void
+f3 (void)
+{
+ f4 ();
+ if (i)
+ FX (f4);
+}
+
+static inline void
+f2 (void)
+{
+ FX (&f3);
+}
+
+void
+f1 (void)
+{
+ FX (&f2);
+}