public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada
@ 2012-06-21 6:54 jakub at gcc dot gnu.org
2012-06-21 6:58 ` [Bug debug/53740] " jakub at gcc dot gnu.org
` (9 more replies)
0 siblings, 10 replies; 11+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-06-21 6:54 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53740
Bug #: 53740
Summary: [4.8 Regression] --enable-checking=yes,rtl bootstrap
failure with ada
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Keywords: ice-checking, ice-on-valid-code
Severity: normal
Priority: P3
Component: debug
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: jakub@gcc.gnu.org
CC: aoliva@gcc.gnu.org
Last night my x86_64-linux bootstrap failed due to a RTL checking failure.
.../gnat1 -gnatwa -quiet -nostdinc -O2 -g -gnatpg -m32 -mtune=generic
-march=x86-64 -gnatO s-arit64.o s-arit64.adb -o /tmp/s-arit64.s
ICEs, because in dead_debug_insert_temp during DCE
reg = *DF_REF_REAL_LOC (cur->use);
assigns reg a DEBUG_EXPR rather than REG, so when we later:
/* Hmm... Something's fishy, we should be setting REG here. */
if (REGNO (dest) != REGNO (reg))
breg = NULL;
we ICE, because REGNO on DEBUG_EXPR isn't valid. Alex, could you please look
at it? Not sure if DEBUG_EXPR there is supposed to be valid and we should just
handle it, or if the problem is that some dead_debug* call wasn't called or
didn't do the right job. Thanks.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug debug/53740] [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada
2012-06-21 6:54 [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada jakub at gcc dot gnu.org
@ 2012-06-21 6:58 ` jakub at gcc dot gnu.org
2012-06-21 9:33 ` rguenth at gcc dot gnu.org
` (8 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-06-21 6:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53740
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-06-21 06:57:49 UTC ---
Created attachment 27672
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27672
pr53740.tar.bz2
Sources needed to reproduce it.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug debug/53740] [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada
2012-06-21 6:54 [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada jakub at gcc dot gnu.org
2012-06-21 6:58 ` [Bug debug/53740] " jakub at gcc dot gnu.org
@ 2012-06-21 9:33 ` rguenth at gcc dot gnu.org
2012-06-25 5:26 ` aoliva at gcc dot gnu.org
` (7 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-06-21 9:33 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53740
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |4.8.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug debug/53740] [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada
2012-06-21 6:54 [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada jakub at gcc dot gnu.org
2012-06-21 6:58 ` [Bug debug/53740] " jakub at gcc dot gnu.org
2012-06-21 9:33 ` rguenth at gcc dot gnu.org
@ 2012-06-25 5:26 ` aoliva at gcc dot gnu.org
2012-06-25 13:26 ` rsandifo at gcc dot gnu.org
` (6 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-06-25 5:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53740
Alexandre Oliva <aoliva at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rsandifo at gcc dot gnu.org
--- Comment #2 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-06-25 05:25:54 UTC ---
Richard Sandiford has a patch that will probably cure this:
http://gcc.gnu.org/ml/gcc-patches/2012-06/msg01530.html
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug debug/53740] [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada
2012-06-21 6:54 [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada jakub at gcc dot gnu.org
` (2 preceding siblings ...)
2012-06-25 5:26 ` aoliva at gcc dot gnu.org
@ 2012-06-25 13:26 ` rsandifo at gcc dot gnu.org
2012-06-25 14:21 ` rsandifo at gcc dot gnu.org
` (5 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2012-06-25 13:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53740
--- Comment #3 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> 2012-06-25 13:25:47 UTC ---
Author: rsandifo
Date: Mon Jun 25 13:25:39 2012
New Revision: 188934
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=188934
Log:
gcc/
PR debug/53740
* df.h (dead_debug_add): Remove third argument.
* df-problems.c (dead_debug_add): Likewise. Use the REGNO of the
REG that we want to replace instead.
(dead_debug_insert_temp): Use the REGNO of the reg that we want
to replace instead of DF_REF_REGNO. Require there to always be
at least one such use. Check for cases where the same location
has more than df_ref associated with it.
(df_note_bb_compute): Remove third dead_debug_add argument.
* dce.c (word_dce_process_block): Likewise.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dce.c
trunk/gcc/df-problems.c
trunk/gcc/df.h
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug debug/53740] [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada
2012-06-21 6:54 [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada jakub at gcc dot gnu.org
` (3 preceding siblings ...)
2012-06-25 13:26 ` rsandifo at gcc dot gnu.org
@ 2012-06-25 14:21 ` rsandifo at gcc dot gnu.org
2012-06-26 20:27 ` aoliva at gcc dot gnu.org
` (4 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2012-06-25 14:21 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53740
--- Comment #4 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> 2012-06-25 14:20:29 UTC ---
Author: rsandifo
Date: Mon Jun 25 14:20:19 2012
New Revision: 188935
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=188935
Log:
PR debug/53740
* df.h, df-problems.c, dce.c: Revert last patch.
Modified:
trunk/ChangeLog
trunk/gcc/dce.c
trunk/gcc/df-problems.c
trunk/gcc/df.h
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug debug/53740] [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada
2012-06-21 6:54 [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada jakub at gcc dot gnu.org
` (4 preceding siblings ...)
2012-06-25 14:21 ` rsandifo at gcc dot gnu.org
@ 2012-06-26 20:27 ` aoliva at gcc dot gnu.org
2012-06-27 5:42 ` aoliva at gcc dot gnu.org
` (3 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-06-26 20:27 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53740
Alexandre Oliva <aoliva at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2012-06-26
AssignedTo|unassigned at gcc dot |aoliva at gcc dot gnu.org
|gnu.org |
Ever Confirmed|0 |1
--- Comment #5 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-06-26 20:27:00 UTC ---
I'm taking this over, at Richard's request.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug debug/53740] [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada
2012-06-21 6:54 [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada jakub at gcc dot gnu.org
` (5 preceding siblings ...)
2012-06-26 20:27 ` aoliva at gcc dot gnu.org
@ 2012-06-27 5:42 ` aoliva at gcc dot gnu.org
2012-06-27 5:58 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-06-27 5:42 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53740
--- Comment #6 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-06-27 05:42:26 UTC ---
The bug was introduced in r188527, with the conditionalization of calling
insert_dead_debug_temp in the “else” clause, so that we would no longer insert
debug temps for sets that were not themselves dead, but that were used in debug
stmts after their death. This caused a chain of debug temps to be incorrectly
introduced, which ended up triggering the problem.
Now, there is indeed a bug in the way we deal with multiregs: we're happily
using paradoxical SUBREGs to extend the value stored in a single REG to
determine the value of the whole multi-reg expression. We only refrained from
doing so if the SET was already a SUBREG, but we had to do that for REGs too.
In the patch I'm testing now, I fix both problems. Will post soon.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug debug/53740] [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada
2012-06-21 6:54 [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada jakub at gcc dot gnu.org
` (6 preceding siblings ...)
2012-06-27 5:42 ` aoliva at gcc dot gnu.org
@ 2012-06-27 5:58 ` jakub at gcc dot gnu.org
2012-06-28 7:40 ` aoliva at gcc dot gnu.org
2012-06-28 7:46 ` aoliva at gcc dot gnu.org
9 siblings, 0 replies; 11+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-06-27 5:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53740
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-06-27 05:58:31 UTC ---
(In reply to comment #6)
> The bug was introduced in r188527, with the conditionalization of calling
> insert_dead_debug_temp in the “else” clause, so that we would no longer insert
> debug temps for sets that were not themselves dead, but that were used in debug
> stmts after their death. This caused a chain of debug temps to be incorrectly
> introduced, which ended up triggering the problem.
If you are going to fix this by making it unconditional again, I think both
word_dce_process_block and dce_process_block should do it unconditionally.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug debug/53740] [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada
2012-06-21 6:54 [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada jakub at gcc dot gnu.org
` (7 preceding siblings ...)
2012-06-27 5:58 ` jakub at gcc dot gnu.org
@ 2012-06-28 7:40 ` aoliva at gcc dot gnu.org
2012-06-28 7:46 ` aoliva at gcc dot gnu.org
9 siblings, 0 replies; 11+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-06-28 7:40 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53740
--- Comment #8 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-06-28 07:39:33 UTC ---
Author: aoliva
Date: Thu Jun 28 07:39:25 2012
New Revision: 189036
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=189036
Log:
PR debug/53740
PR debug/52983
PR debug/48866
* dce.c (word_dce_process_block): Check whether inserting debug
temps are needed even for needed insns.
(dce_process_block): Likewise.
* df-problems.c (dead_debug_add): Add comment about multi-regs.
(dead_debug_insert_temp): Likewise. Don't subreg when we're
setting fewer regs than a multi-reg requires.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dce.c
trunk/gcc/df-problems.c
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Bug debug/53740] [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada
2012-06-21 6:54 [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada jakub at gcc dot gnu.org
` (8 preceding siblings ...)
2012-06-28 7:40 ` aoliva at gcc dot gnu.org
@ 2012-06-28 7:46 ` aoliva at gcc dot gnu.org
9 siblings, 0 replies; 11+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-06-28 7:46 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53740
Alexandre Oliva <aoliva at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
--- Comment #8 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-06-28 07:39:33 UTC ---
Author: aoliva
Date: Thu Jun 28 07:39:25 2012
New Revision: 189036
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=189036
Log:
PR debug/53740
PR debug/52983
PR debug/48866
* dce.c (word_dce_process_block): Check whether inserting debug
temps are needed even for needed insns.
(dce_process_block): Likewise.
* df-problems.c (dead_debug_add): Add comment about multi-regs.
(dead_debug_insert_temp): Likewise. Don't subreg when we're
setting fewer regs than a multi-reg requires.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dce.c
trunk/gcc/df-problems.c
--- Comment #9 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-06-28 07:46:17 UTC ---
Fixed
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-06-28 7:46 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-21 6:54 [Bug debug/53740] New: [4.8 Regression] --enable-checking=yes,rtl bootstrap failure with ada jakub at gcc dot gnu.org
2012-06-21 6:58 ` [Bug debug/53740] " jakub at gcc dot gnu.org
2012-06-21 9:33 ` rguenth at gcc dot gnu.org
2012-06-25 5:26 ` aoliva at gcc dot gnu.org
2012-06-25 13:26 ` rsandifo at gcc dot gnu.org
2012-06-25 14:21 ` rsandifo at gcc dot gnu.org
2012-06-26 20:27 ` aoliva at gcc dot gnu.org
2012-06-27 5:42 ` aoliva at gcc dot gnu.org
2012-06-27 5:58 ` jakub at gcc dot gnu.org
2012-06-28 7:40 ` aoliva at gcc dot gnu.org
2012-06-28 7:46 ` aoliva at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).