diff options
author | jamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-30 16:26:09 +0000 |
---|---|---|
committer | jamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-30 16:26:09 +0000 |
commit | 76870d0c4fc737b8793349e53e0a8aab63e3df24 (patch) | |
tree | f6460af39d2f4f54a9cf53ee18228403a092a227 | |
parent | 7773bde8de1f0af457dc8fba1a3e35ef7460109c (diff) | |
download | ppe42-gcc-76870d0c4fc737b8793349e53e0a8aab63e3df24.tar.gz ppe42-gcc-76870d0c4fc737b8793349e53e0a8aab63e3df24.zip |
2009-07-30 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/40570
* ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
use inlining loops.
* testsuite/gcc.c-torture/compile/pr40570.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150263 138bc75d-0d04-0410-961f-82ee72b054a4
-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.c-torture/compile/pr40570.c | 22 |
4 files changed, 35 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ca374c343d1..f5b3ba34104 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-07-30 Martin Jambor <mjambor@suse.cz> + + PR tree-optimization/40570 + * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single + use inlining loops. + 2009-07-30 Razya Ladelsky <razya@il.ibm.com> * ssa-loop-manip.c: Include langhooks.h. diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 040096fa0d1..dde8181c86c 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -1227,6 +1227,8 @@ cgraph_decide_inlining (void) && !node->needed && node->local.inlinable && node->callers->inline_failed + && node->callers->caller != node + && node->callers->caller->global.inlined_to != node && !gimple_call_cannot_inline_p (node->callers->call_stmt) && !DECL_EXTERNAL (node->decl) && !DECL_COMDAT (node->decl)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e3b61034dc9..f86fc53c2fd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-07-30 Martin Jambor <mjambor@suse.cz> + + PR tree-optimization/40570 + * gcc.c-torture/compile/pr40570.c: New test. + 2009-07-29 Jason Merrill <jason@redhat.com> PR c++/14912 diff --git a/gcc/testsuite/gcc.c-torture/compile/pr40570.c b/gcc/testsuite/gcc.c-torture/compile/pr40570.c new file mode 100644 index 00000000000..7c3f4d83b2e --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr40570.c @@ -0,0 +1,22 @@ +extern void anything(int); + +static int foo(int i); + +static int bar(int i) { foo(i); } + +extern int j; + +static int foo(int i) +{ + if (j) + anything(j); + return bar(i); +} + +int baz() +{ + foo(0); + if (baz()) + return 1; + return 0; +} |