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).