aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2011-10-20 13:46:08 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2011-10-20 11:46:08 +0000
commit8ec802d7d8812cdaaa7516edc624b6e66e419f94 (patch)
treef3fe8a05128f6bc4356c7cbf0d913d6c48f65c90 /gcc
parente45c0886d6eb063199f113c4285bbd9d8e96fce3 (diff)
downloadgcc-8ec802d7d8812cdaaa7516edc624b6e66e419f94.zip
gcc-8ec802d7d8812cdaaa7516edc624b6e66e419f94.tar.gz
gcc-8ec802d7d8812cdaaa7516edc624b6e66e419f94.tar.bz2
re PR bootstrap/50709 (stage3 bootstrap comparison failure with --disable-checking config option)
PR bootstrap/50709 * ipa-inline.c (inline_small_functions): Fix checking code to not make effect on fibheap stability. From-SVN: r180247
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-inline.c9
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 204ab43..e7c42e5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-10-19 Jan Hubicka <jh@suse.cz>
+
+ PR bootstrap/50709
+ * ipa-inline.c (inline_small_functions): Fix checking code to not make
+ effect on fibheap stability.
+
2011-10-20 Maxim Kuvyrkov <maxim@codesourcery.com>
* config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs.
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index f069914..909b5ba 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -1384,6 +1384,7 @@ inline_small_functions (void)
struct cgraph_node *where, *callee;
int badness = fibheap_min_key (heap);
int current_badness;
+ int cached_badness;
int growth;
edge = (struct cgraph_edge *) fibheap_extract_min (heap);
@@ -1392,16 +1393,18 @@ inline_small_functions (void)
if (!edge->inline_failed)
continue;
- /* Be sure that caches are maintained consistent. */
-#ifdef ENABLE_CHECKING
+ /* Be sure that caches are maintained consistent.
+ We can not make this ENABLE_CHECKING only because it cause differnt
+ updates of the fibheap queue. */
+ cached_badness = edge_badness (edge, false);
reset_edge_growth_cache (edge);
reset_node_growth_cache (edge->callee);
-#endif
/* When updating the edge costs, we only decrease badness in the keys.
Increases of badness are handled lazilly; when we see key with out
of date value on it, we re-insert it now. */
current_badness = edge_badness (edge, false);
+ gcc_assert (cached_badness == current_badness);
gcc_assert (current_badness >= badness);
if (current_badness != badness)
{