diff options
author | Richard Guenther <rguenther@suse.de> | 2011-12-13 12:54:57 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-12-13 12:54:57 +0000 |
commit | a5c3d18c25527d20882a575274f2a06a73f54863 (patch) | |
tree | d2ad875ff89b9da4d794288131abd4cb659df04a /gcc | |
parent | 4634c03b7253ad80fcec0435307a9e67a30cd5f4 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ipa-inline.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr51519.c | 39 |
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); +} |