* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
@ 2015-01-03 21:51 ` pinskia at gcc dot gnu.org
2015-01-04 16:38 ` hubicka at gcc dot gnu.org
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu.org @ 2015-01-03 21:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |5.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
2015-01-03 21:51 ` [Bug ipa/64481] " pinskia at gcc dot gnu.org
@ 2015-01-04 16:38 ` hubicka at gcc dot gnu.org
2015-01-09 7:06 ` maltsevm at gmail dot com
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2015-01-04 16:38 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
--- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Bootstrap worked for me yesterday. I guess disable-checking may be the reason,
I will try to reproduce this.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
2015-01-03 21:51 ` [Bug ipa/64481] " pinskia at gcc dot gnu.org
2015-01-04 16:38 ` hubicka at gcc dot gnu.org
@ 2015-01-09 7:06 ` maltsevm at gmail dot com
2015-01-13 11:38 ` rguenth at gcc dot gnu.org
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: maltsevm at gmail dot com @ 2015-01-09 7:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
Mikhail Maltsev <maltsevm at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |maltsevm at gmail dot com
--- Comment #2 from Mikhail Maltsev <maltsevm at gmail dot com> ---
Reproduced on recent revision (219345). Indeed, --disable-checking causes
comparison to fail.
Bootstrap fails:
configure --prefix=/usr/local/gcc-5.0.0 --enable-clocale=gnu --with-system-zlib
--enable-shared --enable-bootstrap --disable-checking --disable-multilib
--disable-nls --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++
Bootstrap passes:
configure --prefix=/usr/local/gcc-5.0.0 --enable-clocale=gnu --with-system-zlib
--enable-shared --enable-bootstrap --disable-multilib --disable-nls
--with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
` (2 preceding siblings ...)
2015-01-09 7:06 ` maltsevm at gmail dot com
@ 2015-01-13 11:38 ` rguenth at gcc dot gnu.org
2015-01-13 18:48 ` jakub at gcc dot gnu.org
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-01-13 11:38 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
` (3 preceding siblings ...)
2015-01-13 11:38 ` rguenth at gcc dot gnu.org
@ 2015-01-13 18:48 ` jakub at gcc dot gnu.org
2015-01-13 22:50 ` hubicka at gcc dot gnu.org
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-01-13 18:48 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2015-01-13
CC| |jakub at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
This is caused by the
@@ -1695,10 +1680,9 @@
if (!edge->inline_failed || !edge->callee->analyzed)
continue;
- /* Be sure that caches are maintained consistent.
- We can not make this ENABLE_CHECKING only because it cause different
- updates of the fibheap queue. */
- cached_badness = edge_badness (edge, false);
+#ifdef ENABLE_CHECKING
+ /* Be sure that caches are maintained consistent. */
+ sreal cached_badness = edge_badness (edge, false);
reset_edge_growth_cache (edge);
reset_node_growth_cache (edge->callee);
@@ -1708,10 +1692,18 @@
current_badness = edge_badness (edge, false);
gcc_assert (cached_badness == current_badness);
gcc_assert (current_badness >= badness);
+#else
+ current_badness = edge_badness (edge, false);
+#endif
changes in particular, clearly the old comment was correct. With
--disable-checking --enable-stage1-checking defaults to yes,types and because
of this #ifdef stage1 behaves differently from stage2. But it is certainly bad
even if --disable-checking compiler behaves differently from
--enable-checking=yes one.
If I replace #ifdef ENABLE_CHECKING with #if 1 // ENABLE_CHECKING,
--disable-checking bootstrap succeeds just fine.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
` (4 preceding siblings ...)
2015-01-13 18:48 ` jakub at gcc dot gnu.org
@ 2015-01-13 22:50 ` hubicka at gcc dot gnu.org
2015-01-13 23:00 ` jakub at gcc dot gnu.org
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2015-01-13 22:50 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
The comment is no longer valid, because no updates are made inside of the ifdef
block. What probably happens is that the edge growth cache is not up to date
but the problem is not noticed by the sanity check.
I fixed some of cache updates recently, does it solve the problem?
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
` (5 preceding siblings ...)
2015-01-13 22:50 ` hubicka at gcc dot gnu.org
@ 2015-01-13 23:00 ` jakub at gcc dot gnu.org
2015-01-13 23:16 ` hubicka at gcc dot gnu.org
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-01-13 23:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I've reproduced the bootstrap failure with r219533. Did you mean r219536?
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
` (6 preceding siblings ...)
2015-01-13 23:00 ` jakub at gcc dot gnu.org
@ 2015-01-13 23:16 ` hubicka at gcc dot gnu.org
2015-01-13 23:58 ` hubicka at gcc dot gnu.org
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2015-01-13 23:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |hubicka at gcc dot gnu.org
--- Comment #6 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
On second thought it is easy to add function that verifies cache consistency
instead of resetting it that should catch any potential issues. I will look
into it today. It seems that there are some extra latent bugs surfaced by the
more sensitive sreal costs.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
` (7 preceding siblings ...)
2015-01-13 23:16 ` hubicka at gcc dot gnu.org
@ 2015-01-13 23:58 ` hubicka at gcc dot gnu.org
2015-01-14 0:28 ` hubicka at gcc dot gnu.org
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2015-01-13 23:58 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
--- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
OK, there are at least two issues. First is that we mix up alias with its
target (i.e. clear caches on alias instead of alias target) and second that we
still use node growth cache in some cases. Major use in the badness calculation
was removed by Richard few releases back and its updating code was removed. The
cache however remained and it is used at the end of inlining to inline
functions called once etc. I am testing full removal, but need to benchmark it
on firefox just to be sure.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
` (8 preceding siblings ...)
2015-01-13 23:58 ` hubicka at gcc dot gnu.org
@ 2015-01-14 0:28 ` hubicka at gcc dot gnu.org
2015-01-14 3:48 ` hubicka at gcc dot gnu.org
2015-01-16 4:13 ` hubicka at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2015-01-14 0:28 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
--- Comment #8 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Created attachment 34441
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34441&action=edit
Proposed fix
I am testing the attached patch. Seems that it has no negaitve impact on
firefox linktime.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
` (9 preceding siblings ...)
2015-01-14 0:28 ` hubicka at gcc dot gnu.org
@ 2015-01-14 3:48 ` hubicka at gcc dot gnu.org
2015-01-16 4:13 ` hubicka at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2015-01-14 3:48 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
--- Comment #9 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Author: hubicka
Date: Wed Jan 14 03:47:17 2015
New Revision: 219572
URL: https://gcc.gnu.org/viewcvs?rev=219572&root=gcc&view=rev
Log:
PR ipa/64481
* ipa-inline-analysis.c (node_growth_cache): Remove.
(initialize_growth_caches): Do not initialize it.
(free_growth_caches): Do not free it.
(do_estimate_growth): Rename to ...
(estimate_growth): ... this one; drop growth cache code.
(growth_likely_positive): Always go the heuristics way.
* ipa-inline.c (can_inline_edge_p): Walk through aliases.
(reset_edge_caches): Do not reset node growth.
(heap_edge_removal_hook): Do not maintain cache.
(inline_small_functions): Likewise; strenghten sanity check.
(ipa_inline): Do not maintain caches.
* ipa-inline.h (node_growth_cache): Remove.
(do_estimate_growth): Remove to ...
(estimate_growth): this one; remove inline version.
(reset_node_growth_cache): Remove.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-inline-analysis.c
trunk/gcc/ipa-inline.c
trunk/gcc/ipa-inline.h
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/64481] [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu)
2015-01-03 15:59 [Bug ipa/64481] New: [5 Regression] r219076 breaks bootstrap (x86_64-unknown-linux-gnu) david.abdurachmanov at gmail dot com
` (10 preceding siblings ...)
2015-01-14 3:48 ` hubicka at gcc dot gnu.org
@ 2015-01-16 4:13 ` hubicka at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2015-01-16 4:13 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64481
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #10 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 13+ messages in thread