aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2009-11-23 23:27:15 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2009-11-23 22:27:15 +0000
commitcefdbe2fe99d5b05ed416214b9e229f31f86223b (patch)
treeee247b1cb7ba23f92c45ff518b52807f2dc03f79
parent83a4e6e9928c2ddaf715f05cc729104200bf17c9 (diff)
downloadgcc-cefdbe2fe99d5b05ed416214b9e229f31f86223b.zip
gcc-cefdbe2fe99d5b05ed416214b9e229f31f86223b.tar.gz
gcc-cefdbe2fe99d5b05ed416214b9e229f31f86223b.tar.bz2
re PR middle-end/42151 (verify_cgraph_node failed with -O3 -Winline)
PR middle-end/42151 * ipa-inline.c (inline_transform): Avoid ICE when transform is called twice. From-SVN: r154475
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-inline.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b8378a5..791dbe1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2009-11-23 Jan Hubicka <jh@suse.cz>
+ PR middle-end/42151
+ * ipa-inline.c (inline_transform): Avoid ICE when transform is called
+ twice.
+
+2009-11-23 Jan Hubicka <jh@suse.cz>
+
* ipa-cp.c (ipcp_compute_node_scale): Work around completely
wrong profile updates.
* predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 786c21c..495d885 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -1974,6 +1974,11 @@ inline_transform (struct cgraph_node *node)
unsigned int todo = 0;
struct cgraph_edge *e;
+ /* FIXME: Currently the passmanager is adding inline transform more than once to some
+ clones. This needs revisiting after WPA cleanups. */
+ if (cfun->after_inlining)
+ return 0;
+
/* We might need the body of this function so that we can expand
it inline somewhere else. */
if (cgraph_preserve_function_body_p (node->decl))