aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-01-13 21:59:37 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-01-13 20:59:37 +0000
commit2001028ad3a44e5333333c175118837dba03c620 (patch)
tree16b0e6a36e132f7bfcc281898adf43947cc7246d /gcc/ipa-inline.c
parent59b8926c6fe2f4320babf3fd7e7d1ca8731e3890 (diff)
downloadgcc-2001028ad3a44e5333333c175118837dba03c620.zip
gcc-2001028ad3a44e5333333c175118837dba03c620.tar.gz
gcc-2001028ad3a44e5333333c175118837dba03c620.tar.bz2
re PR ipa/64565 (ICE: in inline_small_functions, at ipa-inline.c:1664)
PR ipa/64565 * g++.dg/torture/pr64565.C: New testcase. * ipa-inline.c (inline_small_functions): Update callee keys after resolving speculation (inline_small_functions): Always check monotonicity of the queue. From-SVN: r219556
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r--gcc/ipa-inline.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index a99001ad..61e470f 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -1626,6 +1626,8 @@ inline_small_functions (void)
reset_edge_caches (where);
update_caller_keys (&edge_heap, where,
updated_nodes, NULL);
+ update_callee_keys (&edge_heap, where,
+ updated_nodes);
bitmap_clear (updated_nodes);
}
}
@@ -1661,7 +1663,7 @@ inline_small_functions (void)
/* Disable checking for profile because roundoff errors may cause slight
deviations in the order. */
gcc_assert (max_count || cached_badness == current_badness);
- gcc_assert (max_count || current_badness >= badness);
+ gcc_assert (current_badness >= badness);
#else
current_badness = edge_badness (edge, false);
#endif