diff options
author | Jan Hubicka <jh@suse.cz> | 2011-10-20 13:46:08 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2011-10-20 11:46:08 +0000 |
commit | 8ec802d7d8812cdaaa7516edc624b6e66e419f94 (patch) | |
tree | f3fe8a05128f6bc4356c7cbf0d913d6c48f65c90 /gcc | |
parent | e45c0886d6eb063199f113c4285bbd9d8e96fce3 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ipa-inline.c | 9 |
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) { |