public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
@ 2012-03-12 23:50 schwab@linux-m68k.org
  2012-03-13  8:30 ` [Bug rtl-optimization/52573] " rguenth at gcc dot gnu.org
                   ` (16 more replies)
  0 siblings, 17 replies; 18+ messages in thread
From: schwab@linux-m68k.org @ 2012-03-12 23:50 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

             Bug #: 52573
           Summary: [4.5/4.6/4.7/4.8 regression] regrename creates
                    overlapping register allocations for output operands
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: schwab@linux-m68k.org
            Target: m86k-*


gcc.c-torture/execute/20040709-1.c when compiled with -O3 -funroll-loops (which
enables -frename-registers) generates:

        muls.l #-2004318071,%d1:%d1

which produces undefined results.  regrename transforms

(insn 118 200 119 7 (parallel [
            (set (reg:SI 1 %d1 [235])
                (truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (reg:SI 3
%d3 [236]))
                            (const_int -2004318071 [0x88888889]))
                        (const_int 32 [0x20]))))
            (clobber (reg:SI 3 %d3 [236]))
        ]) ../gcc/gcc/testsuite/gcc.c-torture/execute/20040709-1.c:91 192
{const_smulsi3_highpart}
     (expr_list:REG_DEAD (reg:SI 3 %d3 [236])
        (expr_list:REG_UNUSED (reg:SI 3 %d3 [236])
            (nil))))

into

(insn 118 200 119 7 (parallel [
            (set (reg:SI 1 %d1 [235])
                (truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (reg:SI 1
%d1 [236]))
                            (const_int -2004318071 [0x88888889]))
                        (const_int 32 [0x20]))))
            (clobber (reg:SI 1 %d1 [236]))
        ]) ../gcc/gcc/testsuite/gcc.c-torture/execute/20040709-1.c:91 192
{const_smulsi3_highpart}
     (expr_list:REG_DEAD (reg:SI 3 %d3 [236])
        (expr_list:REG_UNUSED (reg:SI 3 %d3 [236])
            (nil))))

The simplified testcase:

int mod (int a) { return a % 15; }

reproduces the bug with 4.5 and 4.6, though not with 4.7/4.8.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
@ 2012-03-13  8:30 ` rguenth at gcc dot gnu.org
  2012-03-14 10:47 ` schwab@linux-m68k.org
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-03-13  8:30 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.5.4


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
  2012-03-13  8:30 ` [Bug rtl-optimization/52573] " rguenth at gcc dot gnu.org
@ 2012-03-14 10:47 ` schwab@linux-m68k.org
  2012-04-13 12:59 ` rguenth at gcc dot gnu.org
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: schwab@linux-m68k.org @ 2012-03-14 10:47 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

Andreas Schwab <schwab@linux-m68k.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bernds at gcc dot gnu.org

--- Comment #1 from Andreas Schwab <schwab@linux-m68k.org> 2012-03-14 10:45:43 UTC ---
7197e17802ace9fc937f5b58f171a3711920b0dd is the first bad commit
commit 7197e17802ace9fc937f5b58f171a3711920b0dd
Author: bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Thu Nov 26 21:41:42 2009 +0000

        PR rtl-opt/38582
        * regrename.c (struct du_head): New members id, conflicts,
        hard_conflicts and cannot_rename.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
  2012-03-13  8:30 ` [Bug rtl-optimization/52573] " rguenth at gcc dot gnu.org
  2012-03-14 10:47 ` schwab@linux-m68k.org
@ 2012-04-13 12:59 ` rguenth at gcc dot gnu.org
  2012-04-13 13:02 ` bernds at gcc dot gnu.org
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-04-13 12:59 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (2 preceding siblings ...)
  2012-04-13 12:59 ` rguenth at gcc dot gnu.org
@ 2012-04-13 13:02 ` bernds at gcc dot gnu.org
  2012-06-10 20:29 ` mikpe at it dot uu.se
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: bernds at gcc dot gnu.org @ 2012-04-13 13:02 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

--- Comment #2 from Bernd Schmidt <bernds at gcc dot gnu.org> 2012-04-13 13:02:03 UTC ---
     (expr_list:REG_DEAD (reg:SI 3 %d3 [236])
        (expr_list:REG_UNUSED (reg:SI 3 %d3 [236])

The REG_DEAD note is bogus and confuses the renamer. Only REG_UNUSED should be
on this insn.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (3 preceding siblings ...)
  2012-04-13 13:02 ` bernds at gcc dot gnu.org
@ 2012-06-10 20:29 ` mikpe at it dot uu.se
  2012-07-02 11:32 ` rguenth at gcc dot gnu.org
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: mikpe at it dot uu.se @ 2012-06-10 20:29 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

--- Comment #3 from Mikael Pettersson <mikpe at it dot uu.se> 2012-06-10 20:29:29 UTC ---
Created attachment 27601
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27601
test case reduced from gcc.c-torture/execute/20040709-1.c

With this test case I can reproduce the bug with gcc-4.8-20120603 -O2
-frename-registers, configured as a cross from i686-linux to m68k-linux. 
Looking at the tree and rtl dump files I first see the erroneous note in
202r.dse2; 201r.pro_and_epilogue has

(insn 19 43 20 2 (parallel [
            (set (reg:SI 1 %d1 [56])
                (truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (reg:SI 2
%d2 [57]))
                            (const_int -2004318071 [0x88888889]))
                        (const_int 32 [0x20]))))
            (clobber (reg:SI 2 %d2 [57]))
        ]) pr52573.c:12 192 {const_smulsi3_highpart}
     (nil))

but 202r.dse2 has

(insn 19 43 20 2 (parallel [
            (set (reg:SI 1 %d1 [56])
                (truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (reg:SI 2
%d2 [57]))
                            (const_int -2004318071 [0x88888889]))
                        (const_int 32 [0x20]))))
            (clobber (reg:SI 2 %d2 [57]))
        ]) pr52573.c:12 192 {const_smulsi3_highpart}
     (expr_list:REG_DEAD (reg:SI 2 %d2 [57])
        (expr_list:REG_UNUSED (reg:SI 2 %d2 [57])
            (nil))))

and in the final .s file there is the invalid

        muls.l #-2004318071,%d1:%d1


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (4 preceding siblings ...)
  2012-06-10 20:29 ` mikpe at it dot uu.se
@ 2012-07-02 11:32 ` rguenth at gcc dot gnu.org
  2012-12-07  0:14 ` [Bug rtl-optimization/52573] [4.6/4.7/4.8 " aoliva at gcc dot gnu.org
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-07-02 11:32 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.5.4                       |4.6.4

--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-07-02 11:31:23 UTC ---
The 4.5 branch is being closed, adjusting target milestone.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (5 preceding siblings ...)
  2012-07-02 11:32 ` rguenth at gcc dot gnu.org
@ 2012-12-07  0:14 ` aoliva at gcc dot gnu.org
  2012-12-07 11:17 ` aoliva at gcc dot gnu.org
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-12-07  0:14 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

Alexandre Oliva <aoliva at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-12-07
                 CC|                            |aoliva at gcc dot gnu.org,
                   |                            |zadeck at naturalbridge dot
                   |                            |com
     Ever Confirmed|0                           |1

--- Comment #5 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-12-07 00:14:12 UTC ---
I've looked a bit into this.  The code in df-problems.c (see bug 32749) is at
least inconsistent.  df_note_bb_compute is supposed to set do_not_gen at the
def, so that we emit the REG_UNUSED but not the REG_DEAD.  However, it does not
set do_not_gen for clobbers (may or must), even though it emits the note.  Oh,
and it only emits the note if it's not a call;for calls, the REG_UNUSED note is
not emitted for clobbers (I wonder why that is), and we still fail to set
do_not_gen, so we emit the REG_DEAD for the parallel use anyway.

Kenny, it seems to me that we should set do_not_gen regardless of any clobber
flags, because the whole (documented) point of do_not_gen is to avoid emitting
a REG_DEAD for a parallel use, and we should make the REG_UNUSED note emission
consistently conditional on clobbers.  Does it sound like this would work?


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (6 preceding siblings ...)
  2012-12-07  0:14 ` [Bug rtl-optimization/52573] [4.6/4.7/4.8 " aoliva at gcc dot gnu.org
@ 2012-12-07 11:17 ` aoliva at gcc dot gnu.org
  2012-12-07 13:39 ` zadeck at naturalbridge dot com
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-12-07 11:17 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

--- Comment #6 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-12-07 11:16:55 UTC ---
I don't get the invalid insn in the trunk, in spite of still having both REG
%d2 notes on it before rnreg.

My attempts to avoid the REG_DEAD note were unfruitful (reg-stack wasn't happy
with my moving the REG_UNUSED note emission out of the CLOBBER conditional on
CALLs, nor with my attempt to mark clobbers as do_not_gen in non-calls,but I
didn't try to find out why yet), but this one, that makes behavior consistent
for calls and non-calls, seems to at least complete the stage1 libgcc build. 
However, rather than removing the bogus REG_DEAD note, it drops the REG_UNUSED
one.

--- a/gcc/df-problems.c
+++ b/gcc/df-problems.c
@@ -3277,11 +3277,12 @@ df_note_bb_compute (unsigned int bb_index,
         {
           df_ref def = *def_rec;
           unsigned int dregno = DF_REF_REGNO (def);
-          df_create_unused_note (insn,
-                     def, live, artificial_uses, &debug);
-
           if (!DF_REF_FLAGS_IS_SET (def, DF_REF_MUST_CLOBBER |
DF_REF_MAY_CLOBBER))
-        bitmap_set_bit (do_not_gen, dregno);
+        {
+          df_create_unused_note (insn,
+                     def, live, artificial_uses, &debug);
+          bitmap_set_bit (do_not_gen, dregno);
+        }

           if (!DF_REF_FLAGS_IS_SET (def, DF_REF_PARTIAL | DF_REF_CONDITIONAL))
         bitmap_clear_bit (live, dregno);


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (7 preceding siblings ...)
  2012-12-07 11:17 ` aoliva at gcc dot gnu.org
@ 2012-12-07 13:39 ` zadeck at naturalbridge dot com
  2012-12-07 16:46 ` schwab@linux-m68k.org
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: zadeck at naturalbridge dot com @ 2012-12-07 13:39 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

--- Comment #7 from Kenneth Zadeck <zadeck at naturalbridge dot com> 2012-12-07 13:39:10 UTC ---
alexandre,

when we did the dataflow stuff, my expertise was primarily in deciding which
problems could be applied to which of the passes and how and when to actually
(re)solve the equations.    i left most of the scanning of the actual rtl to
people like stevenb, richard sandiford, bonzini and dannyb.  This question is
really beyond my level of rtl expertise and i would get one of the first three
involved if i were you.

sorry

kenny


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (8 preceding siblings ...)
  2012-12-07 13:39 ` zadeck at naturalbridge dot com
@ 2012-12-07 16:46 ` schwab@linux-m68k.org
  2012-12-08 19:06 ` mikpe at it dot uu.se
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: schwab@linux-m68k.org @ 2012-12-07 16:46 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

--- Comment #8 from Andreas Schwab <schwab@linux-m68k.org> 2012-12-07 16:45:49 UTC ---
The failure disappeared somewhere between r190830 and r191055.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (9 preceding siblings ...)
  2012-12-07 16:46 ` schwab@linux-m68k.org
@ 2012-12-08 19:06 ` mikpe at it dot uu.se
  2012-12-08 19:32 ` schwab@linux-m68k.org
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: mikpe at it dot uu.se @ 2012-12-08 19:06 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

Mikael Pettersson <mikpe at it dot uu.se> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mikpe at it dot uu.se

--- Comment #9 from Mikael Pettersson <mikpe at it dot uu.se> 2012-12-08 19:05:47 UTC ---
(In reply to comment #8)
> The failure disappeared somewhere between r190830 and r191055.

Are you sure about that revision range?  I still see the bug with 4.8-20120909,
i.e., r191120.  The bug appears to be gone on current trunk however; a
bisection tells me it disappeared with Richard Sandiford's "Replace
mode_for_extraction with new interface" patch in r193605:
http://gcc.gnu.org/ml/gcc-patches/2012-11/msg00260.html
http://gcc.gnu.org/ml/gcc-cvs/2012-11/msg00552.html


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (10 preceding siblings ...)
  2012-12-08 19:06 ` mikpe at it dot uu.se
@ 2012-12-08 19:32 ` schwab@linux-m68k.org
  2013-01-16  4:57 ` law at redhat dot com
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: schwab@linux-m68k.org @ 2012-12-08 19:32 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

--- Comment #10 from Andreas Schwab <schwab@linux-m68k.org> 2012-12-08 19:31:46 UTC ---
http://gcc.gnu.org/ml/gcc-testresults/2012-12/msg00595.html is based on
r191055.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (11 preceding siblings ...)
  2012-12-08 19:32 ` schwab@linux-m68k.org
@ 2013-01-16  4:57 ` law at redhat dot com
  2013-01-16 20:40 ` schwab@linux-m68k.org
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: law at redhat dot com @ 2013-01-16  4:57 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

Jeffrey A. Law <law at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |law at redhat dot com

--- Comment #11 from Jeffrey A. Law <law at redhat dot com> 2013-01-16 04:57:08 UTC ---
Alex, you might want to try with the full testcase rather than the reduced one.
 I certainly continue to see the output and clobber being assigned to the same
hard reg.

Your patch to df-problems.c doesn't seem to help this particular problem:
[law@stumpy gcc]$ ./cc1 -O3 -funroll-loops j.c -quiet
j.c: In function 'testA':
j.c:90:60: warning: overflow in implicit constant conversion [-Woverflow]
 struct A { unsigned int i : 6, l : 1, j : 10, k : 15; }; T(A)
                                                            ^
j.c:53:10: note: in definition of macro 'T'
   struct S x;     \
          ^
j.c: In function 'testK':
j.c:100:60: warning: overflow in implicit constant conversion [-Woverflow]
 struct K { unsigned int k : 6, l : 1, j : 10, i : 15; }; T(K)
                                                            ^
j.c:53:10: note: in definition of macro 'T'
   struct S x;     \
          ^
[law@stumpy gcc]$ !gr
grep muls j.s | grep 2004318071
[ ... ]
        muls.l #-2004318071,%d0:%d0
[ ... ]


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (12 preceding siblings ...)
  2013-01-16  4:57 ` law at redhat dot com
@ 2013-01-16 20:40 ` schwab@linux-m68k.org
  2013-01-18  7:55 ` law at gcc dot gnu.org
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: schwab@linux-m68k.org @ 2013-01-16 20:40 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

--- Comment #12 from Andreas Schwab <schwab@linux-m68k.org> 2013-01-16 20:39:40 UTC ---
I had locally added the patch in
<http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00421.html> and totally forgot
about that, so comment#8 is completely bogus.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (13 preceding siblings ...)
  2013-01-16 20:40 ` schwab@linux-m68k.org
@ 2013-01-18  7:55 ` law at gcc dot gnu.org
  2013-01-18  7:56 ` law at redhat dot com
  2013-01-24  9:38 ` jakub at gcc dot gnu.org
  16 siblings, 0 replies; 18+ messages in thread
From: law at gcc dot gnu.org @ 2013-01-18  7:55 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

--- Comment #13 from Jeffrey A. Law <law at gcc dot gnu.org> 2013-01-18 07:54:52 UTC ---
Author: law
Date: Fri Jan 18 07:54:47 2013
New Revision: 195288

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=195288
Log:
    PR rtl-optimization/52573
        * regrename.c (build_def_use): Ignore REG_DEAD notes if there is
        a REG_UNUSED for the same register.

    * gcc.dg/pr52573.c: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/pr52573.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/regrename.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (14 preceding siblings ...)
  2013-01-18  7:55 ` law at gcc dot gnu.org
@ 2013-01-18  7:56 ` law at redhat dot com
  2013-01-24  9:38 ` jakub at gcc dot gnu.org
  16 siblings, 0 replies; 18+ messages in thread
From: law at redhat dot com @ 2013-01-18  7:56 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

Jeffrey A. Law <law at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|4.6.4                       |4.8.0

--- Comment #14 from Jeffrey A. Law <law at redhat dot com> 2013-01-18 07:56:10 UTC ---
Fixed on trunk


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands
  2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
                   ` (15 preceding siblings ...)
  2013-01-18  7:56 ` law at redhat dot com
@ 2013-01-24  9:38 ` jakub at gcc dot gnu.org
  16 siblings, 0 replies; 18+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-01-24  9:38 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tg at mirbsd dot org

--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-24 09:37:17 UTC ---
*** Bug 56087 has been marked as a duplicate of this bug. ***


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2013-01-24  9:38 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-12 23:50 [Bug rtl-optimization/52573] New: [4.5/4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands schwab@linux-m68k.org
2012-03-13  8:30 ` [Bug rtl-optimization/52573] " rguenth at gcc dot gnu.org
2012-03-14 10:47 ` schwab@linux-m68k.org
2012-04-13 12:59 ` rguenth at gcc dot gnu.org
2012-04-13 13:02 ` bernds at gcc dot gnu.org
2012-06-10 20:29 ` mikpe at it dot uu.se
2012-07-02 11:32 ` rguenth at gcc dot gnu.org
2012-12-07  0:14 ` [Bug rtl-optimization/52573] [4.6/4.7/4.8 " aoliva at gcc dot gnu.org
2012-12-07 11:17 ` aoliva at gcc dot gnu.org
2012-12-07 13:39 ` zadeck at naturalbridge dot com
2012-12-07 16:46 ` schwab@linux-m68k.org
2012-12-08 19:06 ` mikpe at it dot uu.se
2012-12-08 19:32 ` schwab@linux-m68k.org
2013-01-16  4:57 ` law at redhat dot com
2013-01-16 20:40 ` schwab@linux-m68k.org
2013-01-18  7:55 ` law at gcc dot gnu.org
2013-01-18  7:56 ` law at redhat dot com
2013-01-24  9:38 ` jakub 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).