public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug debug/42896]  New: [4.5 Regression] Random debug generation differences, bootstrap fails
@ 2010-01-29 13:10 rguenth at gcc dot gnu dot org
  2010-01-29 13:10 ` [Bug debug/42896] " rguenth at gcc dot gnu dot org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-01-29 13:10 UTC (permalink / raw)
  To: gcc-bugs

Configuring with --enable-languages=c --disable-multilib --without-build-config
bootstrap fails with

Comparing stages 2 and 3
warning: gcc/cc1-checksum.o differs
warning: gcc/cc1obj-checksum.o differs
warning: gcc/cc1plus-checksum.o differs
Bootstrap comparison failure!
gcc/dse.o differs
make[2]: *** [compare] Error 1

The difference happens randomly but always at the same place.  The difference
is in .debug_loc only, readelf -w differences are:

--- /tmp/t1     2010-01-29 14:06:09.000000000 +0100
+++ /tmp/t2     2010-01-29 14:06:14.000000000 +0100
@@ -29471,7 +29471,7 @@
 Raw dump of debug contents of section .debug_line:

   Offset:                      0x0
-  Length:                      4841
+  Length:                      4837
   DWARF Version:               2
   Prologue Length:             691
   Minimum Instruction Length:  1
@@ -30960,7 +30960,7 @@
   Extended opcode 4: set Discriminator to 1
   Set is_stmt to 0
   Special opcode 159: advance Address by 11 to 0x2412 and Line by 0 to 1384
-  Extended opcode 4: set Discriminator to 6
+  Extended opcode 4: set Discriminator to 3
   Special opcode 61: advance Address by 4 to 0x2416 and Line by 0 to 1384
   Set is_stmt to 1
   Advance Line by 217 to 1601
@@ -31171,7 +31171,7 @@
   Special opcode 132: advance Address by 9 to 0x297b and Line by 1 to 1350
   Special opcode 76: advance Address by 5 to 0x2980 and Line by 1 to 1351
   Special opcode 109: advance Address by 7 to 0x2987 and Line by 6 to 1357
-  Extended opcode 4: set Discriminator to 6
+  Extended opcode 4: set Discriminator to 3
   Special opcode 174: advance Address by 12 to 0x2993 and Line by 1 to 1358
   Special opcode 160: advance Address by 11 to 0x299e and Line by 1 to 1359
   Special opcode 202: advance Address by 14 to 0x29ac and Line by 1 to 1360
@@ -31181,12 +31181,10 @@
   Set is_stmt to 0
   Advance PC by constant 17 to 0x29cc
   Special opcode 89: advance Address by 6 to 0x29d2 and Line by 0 to 1374
-  Extended opcode 4: set Discriminator to 3
-  Special opcode 145: advance Address by 10 to 0x29dc and Line by 0 to 1374
   Set is_stmt to 1
   Advance Line by 195 to 1569
-  Advance PC by constant 17 to 0x29ed
-  Special opcode 173: advance Address by 12 to 0x29f9 and Line by 0 to 1569
+  Advance PC by 39 to 0x29f9
+  Copy
   Special opcode 76: advance Address by 5 to 0x29fe and Line by 1 to 1570
   Extended opcode 4: set Discriminator to 1
   Set is_stmt to 0
@@ -31240,7 +31238,7 @@
   Special opcode 6: advance Address by 0 to 0x2b78 and Line by 1 to 1434
   Advance Line by -912 to 522
   Special opcode 145: advance Address by 10 to 0x2b82 and Line by 0 to 522
-  Extended opcode 4: set Discriminator to 3
+  Extended opcode 4: set Discriminator to 1
   Advance Line by 930 to 1452
   Advance PC by constant 17 to 0x2b93
   Special opcode 201: advance Address by 14 to 0x2ba1 and Line by 0 to 1452
@@ -34190,10 +34188,10 @@
     0000778d 00000000000048b1 00000000000048bb (DW_OP_reg2)
     0000778d 00000000000048bb 000000000000490b (DW_OP_reg5)
     0000778d 0000000000004bfb 0000000000004c00 (DW_OP_reg5)
-    0000778d 0000000000004c00 0000000000004c04 (DW_OP_breg7: 32)
+    0000778d 0000000000004c00 0000000000004c04 (DW_OP_breg3: 24)
     0000778d 0000000000004c1f 0000000000004c32 (DW_OP_reg5)
     0000778d 0000000000004e01 0000000000004e1b (DW_OP_reg5)
-    0000778d 0000000000004e1b 0000000000004e1f (DW_OP_breg7: 32)
+    0000778d 0000000000004e1b 0000000000004e1f (DW_OP_breg3: 24)
     0000778d <End of list>
     00007837 0000000000004921 00000000000049c1 (DW_OP_reg13)
     00007837 00000000000049c1 00000000000049cb (DW_OP_reg13)


I now run into this regularly because contrib/compare-debug does not work
for me as the host compiler inserts a .comment.SUSE.OPT section whose
content depends on whether -g is specified or not.


-- 
           Summary: [4.5 Regression] Random debug generation differences,
                    bootstrap fails
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Keywords: build
          Severity: normal
          Priority: P3
         Component: debug
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org
GCC target triplet: x86_64-*-linux-gnu


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
@ 2010-01-29 13:10 ` rguenth at gcc dot gnu dot org
  2010-01-29 13:52 ` rguenth at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-01-29 13:10 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.5.0


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
  2010-01-29 13:10 ` [Bug debug/42896] " rguenth at gcc dot gnu dot org
@ 2010-01-29 13:52 ` rguenth at gcc dot gnu dot org
  2010-01-29 13:57 ` rguenth at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-01-29 13:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from rguenth at gcc dot gnu dot org  2010-01-29 13:51 -------
r156291 is fine, r156292 is broken.


-- 


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
  2010-01-29 13:10 ` [Bug debug/42896] " rguenth at gcc dot gnu dot org
  2010-01-29 13:52 ` rguenth at gcc dot gnu dot org
@ 2010-01-29 13:57 ` rguenth at gcc dot gnu dot org
  2010-01-29 14:00 ` rguenth at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-01-29 13:57 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from rguenth at gcc dot gnu dot org  2010-01-29 13:57 -------
var-tracking dump difference:

--- dse.c.208r.vartrack.equal   2010-01-29 14:55:01.000000000 +0100
+++ dse.c.208r.vartrack.differs 2010-01-29 14:54:34.000000000 +0100
@@ -1889899,8 +1889899,8 @@
  (value/s/u:DI 44 @#/#)
     offset 0
       (reg:DI 5 di)
-      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
       (mem/s/f:DI (value/s/u:DI 4010 @#/#) [111 insn_info_26->read_rec+0 S8
A64
])
+      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
  (value/s/u:DI 40 @#/#)
     offset 0
       (mem/c:DI (value/s/u:DI 4015 @#/#) [134 %sfp+-88 S8 A64])
@@ -1890189,8 +1890189,8 @@
  (value/s/u:DI 44 @#/#)
     offset 0
       (reg:DI 5 di)
-      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
       (mem/s/f:DI (value/s/u:DI 4010 @#/#) [111 insn_info_26->read_rec+0 S8
A64
])
+      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
  (value/s/u:DI 40 @#/#)
     offset 0
       (mem/c:DI (value/s/u:DI 4015 @#/#) [134 %sfp+-88 S8 A64])
@@ -1890480,8 +1890480,8 @@
  (value/s/u:DI 44 @#/#)
     offset 0
       (reg:DI 5 di)
-      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
       (mem/s/f:DI (value/s/u:DI 4010 @#/#) [111 insn_info_26->read_rec+0 S8
A64
])
+      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
  (value/s/u:DI 40 @#/#)
     offset 0
       (mem/c:DI (value/s/u:DI 4015 @#/#) [134 %sfp+-88 S8 A64])
@@ -1890777,8 +1890777,8 @@
  (value/s/u:DI 44 @#/#)
     offset 0
       (reg:DI 5 di)
-      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
       (mem/s/f:DI (value/s/u:DI 4010 @#/#) [111 insn_info_26->read_rec+0 S8
A64
])
+      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
  (value/s/u:DI 40 @#/#)
     offset 0
       (mem/c:DI (value/s/u:DI 4015 @#/#) [134 %sfp+-88 S8 A64])
@@ -1891090,8 +1891090,8 @@
  (value/s/u:DI 44 @#/#)
     offset 0
       (reg:DI 5 di)
-      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
       (mem/s/f:DI (value/s/u:DI 4010 @#/#) [111 insn_info_26->read_rec+0 S8
A64
])
+      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
  (value/s/u:DI 4098 @#/#)
     offset 0
       (plus:DI (value/s/u:DI 42 @#/#)
@@ -1891392,8 +1891392,8 @@
  (value/s/u:DI 44 @#/#)
     offset 0
       (reg:DI 5 di)
-      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
       (mem/s/f:DI (value/s/u:DI 4010 @#/#) [111 insn_info_26->read_rec+0 S8
A64
])
+      (mem/c:DI (value/s/u:DI 4010 @#/#) [134 %sfp+-96 S8 A64])
  (value/s/u:DI 4098 @#/#)
     offset 0
       (plus:DI (value/s/u:DI 42 @#/#)
@@ -1891698,8 +1891698,8 @@

etc.

@@ -2077335,7 +2077335,9 @@
  into...
 expanding (value/s/u:DI 4010 @#/#)
  into...
-expanding (value/s/u:DI 42 @#/#)
+expanding (value/s/u:DI 50 @#/#)
+ into...
+expanding (value/s/u:DI 23 @#/#)
  into...
 expanding (value/s/u/f:DI 10 @#/#)
  into...
@@ -2077895,7 +2077897,9 @@
  into...
 expanding (value/s/u:DI 4010 @#/#)
  into...
-expanding (value/s/u:DI 42 @#/#)
+expanding (value/s/u:DI 50 @#/#)
+ into...
+expanding (value/s/u:DI 23 @#/#)
  into...
 expanding (value/s/u:DI 44 @#/#)
  into...
@@ -2080479,8 +2080483,8 @@
         (mem/c:DI (plus:DI (reg/f:DI 7 sp)
                 (const_int 48 [0x30])) [134 %sfp+-80 S8 A64])) 89
{*movdi_1_rex
64} (nil))

-(note 1296 190 1297 70 (var_location read_info (expr_list:REG_DEP_TRUE
(mem/c:D
I (plus:DI (reg/f:DI 7 sp)
-            (const_int 32 [0x20])) [134 %sfp+-96 S8 A64])
+(note 1296 190 1297 70 (var_location read_info (expr_list:REG_DEP_TRUE
(mem/s/f
:DI (plus:DI (reg/v/f:DI 3 bx [orig:83 insn_info ] [83])
+            (const_int 24 [0x18])) [111 insn_info_26->read_rec+0 S8 A64])
     (const_int 0 [0x0]))) NOTE_INSN_VAR_LOCATION)

 (note 1297 1296 191 70 (var_location mem (expr_list:REG_DEP_TRUE (reg/v/f:DI 6 
bp [orig:80 mem ] [80])
@@ -2081570,8 +2081574,8 @@
 (note 1389 173 1390 101 (var_location mem (expr_list:REG_DEP_TRUE (reg/v/f:DI
6
 bp [orig:80 mem ] [80])
     (const_int 0 [0x0]))) NOTE_INSN_VAR_LOCATION)

-(note 1390 1389 174 101 (var_location read_info (expr_list:REG_DEP_TRUE
(mem/c:
DI (plus:DI (reg/f:DI 7 sp)
-            (const_int 32 [0x20])) [134 %sfp+-96 S8 A64])
+(note 1390 1389 174 101 (var_location read_info (expr_list:REG_DEP_TRUE
(mem/s/
f:DI (plus:DI (reg/v/f:DI 3 bx [orig:83 insn_info ] [83])
+            (const_int 24 [0x18])) [111 insn_info_26->read_rec+0 S8 A64])
     (const_int 0 [0x0]))) NOTE_INSN_VAR_LOCATION)

 (call_insn:TI 174 1390 1391 101 ../../trunk/gcc/dse.c:522 (call (mem:QI
(symbol
_ref:DI ("vec_assert_fail") [flags 0x41]  <function_decl # vec_assert_fail>) [0 
S1 A8])


-- 


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2010-01-29 13:57 ` rguenth at gcc dot gnu dot org
@ 2010-01-29 14:00 ` rguenth at gcc dot gnu dot org
  2010-01-29 14:05 ` rguenth at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-01-29 14:00 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from rguenth at gcc dot gnu dot org  2010-01-29 14:00 -------
Created an attachment (id=19750)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19750&action=view)
testcase

inside stage3/gcc:

obj/gcc> /abuild/rguenther/obj/./prev-gcc/cc1 -fpreprocessed dse.i -quiet
-dumpbase dse.c -mtune=generic -auxbase-strip dse.o -g -O2 -W -Wall
-Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros
-Wno-overlength-strings -Werror -Wold-style-definition -Wc++-compat -version
-fno-common -o dse.s1
obj/gcc> /abuild/rguenther/obj/./prev-gcc/cc1 -fpreprocessed dse.i -quiet
-dumpbase dse.c -mtune=generic -auxbase-strip dse.o -g -O2 -W -Wall
-Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros
-Wno-overlength-strings -Werror -Wold-style-definition -Wc++-compat -version
-fno-common -o dse.s2
obj/gcc> cmp dse.s1 dse.s2 
dse.s1 dse.s2 differ: char 285950, line 18387

--- dse.s1      2010-01-29 14:58:22.000000000 +0100
+++ dse.s2      2010-01-29 14:58:26.000000000 +0100
@@ -18384,8 +18384,8 @@
        .quad   .LVL1531-.Ltext0
        .quad   .LVL1532-1-.Ltext0
        .value  0x2
-       .byte   0x77
-       .sleb128 32
+       .byte   0x73
+       .sleb128 24
        .quad   .LVL1536-.Ltext0
        .quad   .LVL1538-.Ltext0
        .value  0x1
@@ -18397,8 +18397,8 @@
        .quad   .LVL1576-.Ltext0
        .quad   .LVL1577-1-.Ltext0
        .value  0x2
-       .byte   0x77
-       .sleb128 32
+       .byte   0x73
+       .sleb128 24
        .quad   0x0
        .quad   0x0


-- 


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2010-01-29 14:00 ` rguenth at gcc dot gnu dot org
@ 2010-01-29 14:05 ` rguenth at gcc dot gnu dot org
  2010-01-29 15:00 ` jakub at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-01-29 14:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from rguenth at gcc dot gnu dot org  2010-01-29 14:04 -------
Needs randomized va-space to trigger.  My guess:

/* Determine a total order between two distinct pointers.  Compare the
   pointers as integral types if size_t is wide enough, otherwise
   resort to bitwise memory compare.  The actual order does not
   matter, we just need to be consistent, so endianness is
   irrelevant.  */

static int
tie_break_pointers (const void *p1, const void *p2)
{
  gcc_assert (p1 != p2);

  if (sizeof (size_t) >= sizeof (void*))
    return (size_t)p1 < (size_t)p2 ? -1 : 1;
  else
    return memcmp (&p1, &p2, sizeof (p1));
}


-- 


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2010-01-29 14:05 ` rguenth at gcc dot gnu dot org
@ 2010-01-29 15:00 ` jakub at gcc dot gnu dot org
  2010-01-29 15:04 ` rguenth at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu dot org @ 2010-01-29 15:00 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from jakub at gcc dot gnu dot org  2010-01-29 15:00 -------
Created an attachment (id=19751)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19751&action=view)
gcc45-pr42896.patch

Try this.  If we ever hit the assertion, some more patching will be needed to
break the ties.


-- 


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2010-01-29 15:00 ` jakub at gcc dot gnu dot org
@ 2010-01-29 15:04 ` rguenth at gcc dot gnu dot org
  2010-01-29 15:21 ` jakub at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-01-29 15:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from rguenth at gcc dot gnu dot org  2010-01-29 15:04 -------
After fixing the typo it ICEs with the testcase:

../../trunk/gcc/dse.c: In function 'check_mem_read_rtx':
../../trunk/gcc/dse.c:2300:1: internal compiler error: in tie_break_values, at
var-tracking.c:1179
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

which is

  if (!loc1)
    {
      gcc_assert (loc2);


-- 


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2010-01-29 15:04 ` rguenth at gcc dot gnu dot org
@ 2010-01-29 15:21 ` jakub at gcc dot gnu dot org
  2010-01-29 16:26 ` rguenth at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu dot org @ 2010-01-29 15:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from jakub at gcc dot gnu dot org  2010-01-29 15:21 -------
:(, there apparently are VALUEs without locs so we can't always compare this
way.
Both the problematic VALUEs are created through
e = new_cselib_val (hashval, mode, x);
(the only place which doesn't assign VALUE values sequentially, but uses a
hash.
Both
(plus:DI (reg/f:DI 7 sp)
    (const_int 32 [0x20]))
and
(plus:DI (reg/v/f:DI 3 bx [orig:83 insn_info ] [83])
    (const_int 24 [0x18]))
hash to the same value (and while having two values with the same hashval would
be rejected inside of the same bb, it is not rejected inside of different bbs).

So the values are indeed for something completely different and thus must not
be considered equal.  On 64-bit hosts we could at no cost add some sequential
UID to the VALUEs next to value, but on 32-bit hosts it would enlarge the
struct.


-- 


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2010-01-29 15:21 ` jakub at gcc dot gnu dot org
@ 2010-01-29 16:26 ` rguenth at gcc dot gnu dot org
  2010-01-29 16:43 ` jakub at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-01-29 16:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from rguenth at gcc dot gnu dot org  2010-01-29 16:26 -------
Created an attachment (id=19752)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19752&action=view)
reduced testcase


-- 


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2010-01-29 16:26 ` rguenth at gcc dot gnu dot org
@ 2010-01-29 16:43 ` jakub at gcc dot gnu dot org
  2010-01-29 17:18 ` rguenther at suse dot de
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu dot org @ 2010-01-29 16:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from jakub at gcc dot gnu dot org  2010-01-29 16:43 -------
In theory we could reuse the next_containing_mem field for a counter, as it
isn't used for anything once cselib_preserve_only_values is called (and I
believe canon_value_cmp is only ever used after vt_initialize phase finishes,
i.e. all VALUEs have gone through cselib_preserve_only_values. 
remove_useless_values could have a bool argument which
cselib_preserve_only_values would set, then it would just set an int in union
with next_containing_mem to a counter (incremented after each
cselib_preserve_only_values call starting at cselib_init).
The trouble is how to teach GC not to walk next_containing_mem / this int (it
isn't needed to walk next_containing_mem anyway, as all the VALUEs must be in
the hash table anyway).


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2010-01-29 16:43:04
               date|                            |


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2010-01-29 16:43 ` jakub at gcc dot gnu dot org
@ 2010-01-29 17:18 ` rguenther at suse dot de
  2010-01-30  9:14 ` aoliva at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenther at suse dot de @ 2010-01-29 17:18 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from rguenther at suse dot de  2010-01-29 17:17 -------
Subject: Re:  [4.5 Regression] Random debug generation
 differences, bootstrap fails

On Fri, 29 Jan 2010, jakub at gcc dot gnu dot org wrote:

> ------- Comment #9 from jakub at gcc dot gnu dot org  2010-01-29 16:43 -------
> In theory we could reuse the next_containing_mem field for a counter, as it
> isn't used for anything once cselib_preserve_only_values is called (and I
> believe canon_value_cmp is only ever used after vt_initialize phase finishes,
> i.e. all VALUEs have gone through cselib_preserve_only_values. 
> remove_useless_values could have a bool argument which
> cselib_preserve_only_values would set, then it would just set an int in union
> with next_containing_mem to a counter (incremented after each
> cselib_preserve_only_values call starting at cselib_init).
> The trouble is how to teach GC not to walk next_containing_mem / this int (it
> isn't needed to walk next_containing_mem anyway, as all the VALUEs must be in
> the hash table anyway).

Or we could simply record the basic-block and use its index for 
tie-breaking?

Richard.


-- 


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2010-01-29 17:18 ` rguenther at suse dot de
@ 2010-01-30  9:14 ` aoliva at gcc dot gnu dot org
  2010-02-02 13:42 ` rguenth at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: aoliva at gcc dot gnu dot org @ 2010-01-30  9:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from aoliva at gcc dot gnu dot org  2010-01-30 09:13 -------
Mine, patch posted.


-- 

aoliva at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |aoliva at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2010-01-30  9:14 ` aoliva at gcc dot gnu dot org
@ 2010-02-02 13:42 ` rguenth at gcc dot gnu dot org
  2010-02-03 15:01 ` rguenth at gcc dot gnu dot org
  2010-02-03 15:41 ` rguenth at gcc dot gnu dot org
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-02-02 13:42 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2010-02-02 13:42 ` rguenth at gcc dot gnu dot org
@ 2010-02-03 15:01 ` rguenth at gcc dot gnu dot org
  2010-02-03 15:41 ` rguenth at gcc dot gnu dot org
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-02-03 15:01 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from rguenth at gcc dot gnu dot org  2010-02-03 15:00 -------
Subject: Bug 42896

Author: rguenth
Date: Wed Feb  3 15:00:33 2010
New Revision: 156468

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=156468
Log:
2010-02-03  Alexandre Oliva  <aoliva@redhat.com>

        PR debug/42896
        * cselib.h (struct cselib_val_struct): Add uid.  Rename value to
        hash.
        (cselib_reset_table): Renamed from...
        (cselib_reset_table_with_next_value): ... this.
        (cselib_get_next_uid): Renamed from...
        (cselib_get_next_unknown_value): ... this.
        * cselib.c (next_uid): Renamed from...
        (next_unknown_value): ... this.
        (cselib_clear_table): Adjust.
        (cselib_reset_table): Adjust.  Renamed from...
        (cselib_reset_table_with_next_value): ... this.
        (cselib_get_next_uid): Adjust.  Renamed from...
        (cselib_get_next_unknown_value): ... this.
        (get_value_hash): Use hash.
        (cselib_hash_rtx): Likewise.
        (new_cselib_val): Adjust.  Set and dump uid.
        (cselib_lookup_mem): Pass next_uid as hash.
        (cselib_subst_to_values): Likewise.
        (cselib_log_lookup): Dump uid.
        (cselib_lookup): Pass next_uid as hash.  Adjust.
        (cselib_process_insn): Adjust.
        (cselib_init): Initialize next_uid.
        (cselib_finish): Adjust.
        (dump_cselib_table): Likewise.
        * dse.c (canon_address): Dump value uid.
        * print-rtl.c (print_rtx): Print value uid.
        * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
        (dvuid): New type.
        (dv_uid): New function, sort of renamed from...
        (dv_htab_hash): ... this, reimplemented in terms of it and...
        (dv_uid2hash): ... this.  New.
        (variable_htab_eq): Drop excess assertions.
        (tie_break_pointers): Removed.
        (canon_value_cmp): Compare uids.
        (variable_post_merge_New_vals): Print uids.
        (vt_add_function_parameters): Adjust.
        (vt_initialize): Reset table.  Adjust.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cselib.c
    trunk/gcc/cselib.h
    trunk/gcc/dse.c
    trunk/gcc/print-rtl.c
    trunk/gcc/var-tracking.c


-- 


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


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

* [Bug debug/42896] [4.5 Regression] Random debug generation differences, bootstrap fails
  2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2010-02-03 15:01 ` rguenth at gcc dot gnu dot org
@ 2010-02-03 15:41 ` rguenth at gcc dot gnu dot org
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-02-03 15:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from rguenth at gcc dot gnu dot org  2010-02-03 15:40 -------
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


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


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

end of thread, other threads:[~2010-02-03 15:41 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-29 13:10 [Bug debug/42896] New: [4.5 Regression] Random debug generation differences, bootstrap fails rguenth at gcc dot gnu dot org
2010-01-29 13:10 ` [Bug debug/42896] " rguenth at gcc dot gnu dot org
2010-01-29 13:52 ` rguenth at gcc dot gnu dot org
2010-01-29 13:57 ` rguenth at gcc dot gnu dot org
2010-01-29 14:00 ` rguenth at gcc dot gnu dot org
2010-01-29 14:05 ` rguenth at gcc dot gnu dot org
2010-01-29 15:00 ` jakub at gcc dot gnu dot org
2010-01-29 15:04 ` rguenth at gcc dot gnu dot org
2010-01-29 15:21 ` jakub at gcc dot gnu dot org
2010-01-29 16:26 ` rguenth at gcc dot gnu dot org
2010-01-29 16:43 ` jakub at gcc dot gnu dot org
2010-01-29 17:18 ` rguenther at suse dot de
2010-01-30  9:14 ` aoliva at gcc dot gnu dot org
2010-02-02 13:42 ` rguenth at gcc dot gnu dot org
2010-02-03 15:01 ` rguenth at gcc dot gnu dot org
2010-02-03 15:41 ` rguenth at gcc dot gnu dot 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).