[Bug bootstrap/59985] New: stage2/3 compare error on lto-streamer-in.o

bernd.edlinger at hotmail dot de gcc-bugzilla@gcc.gnu.org
Wed Jan 29 14:57:00 GMT 2014


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

            Bug ID: 59985
           Summary: stage2/3 compare error on lto-streamer-in.o
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bernd.edlinger at hotmail dot de

I try to boot strap this on arm-linux-gnueabihf:

../gcc-4.9-20140126/configure --prefix=/home/ed/gnu/arm-linux-gnueabihf
--enable-languages=c,c++,objc,obj-c++,fortran,ada,go --with-arch=armv7-a
--with-tune=cortex-a9 --with-fpu=vfpv3-d16 --with-float=hard

and get a stage2/3 compare error constantly at lto-streamer-in.o
this is reproducible with gcc snapshot gcc-4.9-20140126
as well as gcc-4.9-20140112.

--- stage2.dump    2014-01-29 14:38:32.291550833 +0000
+++ stage3.dump    2014-01-29 14:38:53.595551113 +0000
@@ -1093,19 +1093,19 @@
     1084:    e58d3010     str    r3, [sp, #16]
     1088:    e2082001     and    r2, r8, #1
     108c:    e3a03000     mov    r3, #0
-    1090:    e1a08000     mov    r8, r0
+    1090:    e3a06003     mov    r6, #3
     1094:    e1cd20f8     strd    r2, [sp, #8]
-    1098:    e1a0e001     mov    lr, r1
+    1098:    e3a0c004     mov    ip, #4
     109c:    e59d3010     ldr    r3, [sp, #16]
-    10a0:    e3a06003     mov    r6, #3
-    10a4:    e3a0c004     mov    ip, #4
+    10a0:    e1a08000     mov    r8, r0
+    10a4:    e1a0e001     mov    lr, r1
     10a8:    e1833f01     orr    r3, r3, r1, lsl #30
     10ac:    e58d3010     str    r3, [sp, #16]
     10b0:    e1a03121     lsr    r3, r1, #2
     10b4:    e58d3014     str    r3, [sp, #20]
-    10b8:    e3a03000     mov    r3, #0
-    10bc:    e1cd01d0     ldrd    r0, [sp, #16]
-    10c0:    e2002001     and    r2, r0, #1
+    10b8:    e1cd21d0     ldrd    r2, [sp, #16]
+    10bc:    e3a03000     mov    r3, #0
+    10c0:    e2022001     and    r2, r2, #1
     10c4:    e1cd21f0     strd    r2, [sp, #16]
     10c8:    ea000009     b    10f4
<_Z18lto_input_locationP9bitpack_dP7data_in+0x230>
     10cc:    e5940010     ldr    r0, [r4, #16]


This seems to happen because stage2 uses -gtoggle and stage3 does not.

I see the first difference in lto-streamer-in.c.234r.sched2:

stage2:
(insn 484 475 485 17 (set (reg:SI 2 r2 [orig:118 D.60233 ] [118])
        (and:SI (reg:SI 8 r8 [orig:256 valD.60190 ] [256])
            (const_int 1 [0x1])))
../../gcc-4.9-20140126/gcc/data-streamer.h:172 80 {*arm_andsi3_insn}
     (expr_list:REG_DEAD (reg:SI 8 r8 [orig:256 valD.60190 ] [256])
        (nil)))
(insn:TI 485 484 348 17 (set (reg:SI 3 r3 [ D.60233+4 ])
        (const_int 0 [0])) ../../gcc-4.9-20140126/gcc/data-streamer.h:172 663
{*arm_movsi_vfp}
     (nil))
(insn 348 485 461 17 (set (reg:SI 8 r8 [orig:270 D.60233 ] [270])
        (reg:SI 0 r0 [orig:140 valD.60184 ] [140]))
../../gcc-4.9-20140126/gcc/data-streamer.h:172 663 {*arm_movsi_vfp}
     (expr_list:REG_DEAD (reg:SI 0 r0 [orig:140 valD.60184 ] [140])
        (nil)))
(insn:TI 461 348 349 17 (set (mem/c:DI (plus:SI (reg/f:SI 13 sp)
                (const_int 8 [0x8])) [180 %sfpD.60006+-48 S8 A64])
        (reg:DI 2 r2 [orig:118 D.60233 ] [118]))
../../gcc-4.9-20140126/gcc/data-streamer.h:172 665 {*movdi_vfp}
     (expr_list:REG_DEAD (reg:DI 2 r2 [orig:118 D.60233 ] [118])
        (nil)))

stage3:
(insn 622 613 623 17 (set (reg:SI 2 r2 [orig:118 D.60549 ] [118])
        (and:SI (reg:SI 8 r8 [orig:256 valD.60503 ] [256])
            (const_int 1 [0x1])))
../../gcc-4.9-20140126/gcc/data-streamer.h:172 80 {*arm_andsi3_insn}
     (expr_list:REG_DEAD (reg:SI 8 r8 [orig:256 valD.60503 ] [256])
        (nil)))
(insn:TI 623 622 438 17 (set (reg:SI 3 r3 [ D.60549+4 ])
        (const_int 0 [0])) ../../gcc-4.9-20140126/gcc/data-streamer.h:172 663
{*arm_movsi_vfp}
     (nil))
(insn 438 623 598 17 (set (reg/v:SI 6 r6 [orig:113 posD.60516 ] [113])
        (const_int 3 [0x3])) 663 {*arm_movsi_vfp}
     (nil))
(insn:TI 598 438 428 17 (set (mem/c:DI (plus:SI (reg/f:SI 13 sp)
                (const_int 8 [0x8])) [180 %sfpD.60308+-48 S8 A64])
        (reg:DI 2 r2 [orig:118 D.60549 ] [118]))
../../gcc-4.9-20140126/gcc/data-streamer.h:172 665 {*movdi_vfp}
     (expr_list:REG_DEAD (reg:DI 2 r2 [orig:118 D.60549 ] [118])
        (nil)))



More information about the Gcc-bugs mailing list