[Bug bootstrap/48679] [4.7 regression] bootstrap comparison failures on m68k-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48679 Mikael Pettersson changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #8 from Mikael Pettersson 2011-05-28 10:52:21 UTC --- The bootstrap comparison failures were fixed by r173393: Author: bernds Date: Wed May 4 20:24:15 2011 New Revision: 173393 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=173393 Log: PR rtl-optimization/47612 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter as the last insn of the sequence to be moved. which is a little unexpected since the bug it fixed (PR47612) didn't affect m68k-linux prior to the large IRA update.
[Bug bootstrap/48679] [4.7 regression] bootstrap comparison failures on m68k-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48679 --- Comment #7 from Mikael Pettersson 2011-05-16 12:17:45 UTC --- The bootstrap comparison failure appears to be gone in a c-only build of gcc-4.7-20110514. I'll run a bisect to identify which rev fixed this bug.
[Bug bootstrap/48679] [4.7 regression] bootstrap comparison failures on m68k-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48679 --- Comment #6 from Mikael Pettersson 2011-05-12 22:36:17 UTC --- It's expand_call(), initialize_argument_information(), precompute_register_parameters(), or load_register_parameters() that gets miscompiled in stage2. expand_call() is an external entry point, the next three are static functions that get completely inlined in expand_call(). Moving either of these four to a separate file compiled with the bootstrap compiler eliminates the code changes in alloca.o.
[Bug bootstrap/48679] [4.7 regression] bootstrap comparison failures on m68k-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48679 --- Comment #5 from Mikael Pettersson 2011-05-07 16:25:34 UTC --- It's calls.c that gets miscompiled. If stage2 cc1 is relinked with calls.o from stage1 then it generates the same code for alloca.c as stage1 does. If stage1 cc1 is relinked with calls.o from stage2 then it generates the same code for alloca.c as original stage2 and stage3 do.
[Bug bootstrap/48679] [4.7 regression] bootstrap comparison failures on m68k-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48679 --- Comment #4 from Mikael Pettersson 2011-05-06 11:19:10 UTC --- The smallest .o file that fails bootstrap comparison is libiberty/alloca.o, which get 150 bytes of .text with stage1 xgcc but 148 bytes of text with stage2 and stage3 xgcc (same options). -fcompare-debug doesn't complain. Looks like stage1 miscompiles stage2.
[Bug bootstrap/48679] [4.7 regression] bootstrap comparison failures on m68k-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48679 Mikael Pettersson changed: What|Removed |Added CC||vmakarov at gcc dot gnu.org --- Comment #3 from Mikael Pettersson 2011-05-04 21:26:22 UTC --- Bisection identified Vladimir Makarov's big IRA update in r171649 as the source of this regression. gcc-4.7-20110326 (r171562) builds OK if the PR48332 fix is pre-applied, but gcc-4.7-20110402 (r171894) fails with massive bootstrap comparison failures. Bisecting between these points was a pain because almost all bisection points failed to build due to ICEs, however bisection narrowed in on r171649. I then collected the fixes for all known regression from r171649 (I counted 9 of them), and redid the bisection with relevant fixes pre-applied. This time the builds did not ICE but failed after stage 3 with bootstrap comparison failures. Again bisection identified r171649. Finally I built gcc-4.7-20110402 (r171894) with all IRA changes from r171649 to r171894 reverted, and that bootstrapped fine.
[Bug bootstrap/48679] [4.7 regression] bootstrap comparison failures on m68k-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48679 --- Comment #2 from Mikael Pettersson 2011-04-19 09:58:30 UTC --- `size' shows .text size differences, diffing objdump -d outputs shows what looks like register allocation changes. E.g. on libiberty/objalloc.o: > size prev-libiberty/objalloc.o libiberty/objalloc.o textdata bss dec hex filename 700 0 0 700 2bc prev-libiberty/objalloc.o 712 0 0 712 2c8 libiberty/objalloc.o > objdump -d prev-libiberty/objalloc.o > a > objdump -d libiberty/objalloc.o > b > diff -u a b --- a 2011-04-19 09:48:31.0 + +++ b 2011-04-19 09:49:27.0 + @@ -1,5 +1,5 @@ -prev-libiberty/objalloc.o: file format elf32-m68k +libiberty/objalloc.o: file format elf32-m68k Disassembly of section .text: @@ -15,7 +15,7 @@ 16: 588faddql #4,%sp 18: 4a88tstl %a0 1a: 6720beqs 3c - 1c: 4878 0fe0 pea fe0 + 1c: 4878 0fe0 pea fe0 20: 4e93jsr %a3@ 22: 2548 0008 movel %a0,%a2@(8) 26: 588faddql #4,%sp @@ -56,7 +56,7 @@ 82: 6464bccs e8 <_objalloc_alloc+0x80> 84: 0c82 01ff cmpil #511,%d2 8a: 6200 0090 bhiw 11c <_objalloc_alloc+0xb4> - 8e: 4878 0fe0 pea fe0 + 8e: 4878 0fe0 pea fe0 92: 4eb9 jsr 0 98: 588faddql #4,%sp 9a: 4a88tstl %a0 @@ -131,141 +131,141 @@ 015a : 15a: 4e56 linkw %fp,#0 - 15e: 48e7 2030 moveml %d2/%a2-%a3,%sp@- - 162: 266e 0008 moveal %fp@(8),%a3 - 166: 206b 0008 moveal %a3@(8),%a0 - 16a: 45f9 lea 0 ,%a2 - 170: 4a88tstl %a0 - 172: 671abeqs 18e - 174: 2410movel %a0@,%d2 - 176: 2f08movel %a0,%sp@- - 178: 4e92jsr %a2@ - 17a: 588faddql #4,%sp - 17c: 4a82tstl %d2 - 17e: 670ebeqs 18e - 180: 2042moveal %d2,%a0 - 182: 2410movel %a0@,%d2 - 184: 2f08movel %a0,%sp@- - 186: 4e92jsr %a2@ - 188: 588faddql #4,%sp - 18a: 4a82tstl %d2 - 18c: 66f2bnes 180 - 18e: 2d4b 0008 movel %a3,%fp@(8) - 192: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 - 198: 4e5eunlk %fp - 19a: 60ff bral 19c + 15e: 2f0amovel %a2,%sp@- + 160: 2f02movel %d2,%sp@- + 162: 246e 0008 moveal %fp@(8),%a2 + 166: 206a 0008 moveal %a2@(8),%a0 + 16a: 4a88tstl %a0 + 16c: 6722beqs 190 + 16e: 2410movel %a0@,%d2 + 170: 2f08movel %a0,%sp@- + 172: 4eb9 jsr 0 + 178: 588faddql #4,%sp + 17a: 4a82tstl %d2 + 17c: 6712beqs 190 + 17e: 2042moveal %d2,%a0 + 180: 2410movel %a0@,%d2 + 182: 2f08movel %a0,%sp@- + 184: 4eb9 jsr 0 + 18a: 588faddql #4,%sp + 18c: 4a82tstl %d2 + 18e: 66eebnes 17e + 190: 2d4a 0008 movel %a2,%fp@(8) + 194: 242e fff8 movel %fp@(-8),%d2 + 198: 246e fffc moveal %fp@(-4),%a2 + 19c: 4e5eunlk %fp + 19e: 60ff bral 1a0 -01a0 : - 1a0: 4e56 linkw %fp,#0 - 1a4: 48e7 3c3c moveml %d2-%d5/%a2-%a5,%sp@- - 1a8: 286e 0008 moveal %fp@(8),%a4 - 1ac: 262e 000c movel %fp@(12),%d3 - 1b0: 206c 0008 moveal %a4@(8),%a0 - 1b4: 4a88tstl %a0 - 1b6: 6718beqs 1d0 - 1b8: 2448moveal %a0,%a2 - 1ba: 4284clrl %d4 - 1bc: 242a 0004 movel %a2@(4),%d2 - 1c0: 6714beqs 1d6 - 1c2: 200amovel %a2,%d0 - 1c4: 5080addql #8,%d0 - 1c6: b083cmpl %d3,%d0 - 1c8: 6722beqs 1ec - 1ca: 2452moveal %a2@,%a2 - 1cc: 4a8atstl %a2 - 1ce: 66ecbnes 1bc - 1d0: 4eb9 jsr 0 - 1d6: b5c3cmpal %d3,%a2 - 1d8: 6408bccs 1e2 - 1da: 47ea 0fe0 lea %a2@(4064),%a3 - 1de: b7c3cmpal %d3,%a3 - 1e0: 6258bhis 23a - 1e2: 280amovel %a2,%d4 - 1e4: 2452moveal %a2@,%a2 - 1e6: 4a8atstl %a2 - 1e8: 66d2bnes 1bc - 1ea: 60e4bras 1d0 +01a4 : + 1a4: 4e56 linkw %fp,#0 + 1a8: 48e7 3e30 moveml %d2-%d6/%a2-%a3,%sp@- + 1ac: 266e 0008 moveal %fp@(8),%a3 + 1b0: 262e 000c movel %fp@(12),%d3 + 1b4: 206b 0008 moveal %a3@(8),%a0 + 1b8: 4a88tstl %a0 + 1ba: 6718beqs 1d4 + 1bc: 2448moveal %a0,%a2 + 1be: 4284clrl %d4 + 1c0: 242a 0004 movel %a2@(4),%d2 + 1c4: 6714beqs 1da + 1c6: 200amovel %a2,%d0 + 1c8: 5080addql #8,%d0 + 1ca: b083cmpl %d3,%d0 + 1cc: 6726beqs 1f4 +
[Bug bootstrap/48679] [4.7 regression] bootstrap comparison failures on m68k-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48679 Richard Guenther changed: What|Removed |Added Target Milestone|--- |4.7.0
[Bug bootstrap/48679] [4.7 regression] bootstrap comparison failures on m68k-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48679 --- Comment #1 from Andreas Schwab 2011-04-19 09:24:05 UTC --- What are the differences?