Tested revisions:
trunk r157161 - fail (fix for pr42640 doesn't help)
trunk r156598 - fail
It causes bootstrap comparison failure with BOOT_CFLAGS="-O2
-ftree-loop-distribution":
Comparing stages 2 and 3
warning: gcc/cc1plus-checksum.o differs
warning: gcc/cc1-checksum.o differs
Bootstrap comparison failure!
libiberty/sha1.o differs
make[2]: *** [compare] Error 1
sha1.o has different code from stage1 and stage2 compilers
For commands:
$ /mnt/sdb1/build-157161/stage1-gcc/cc1 -O2 sha1.i -fdump-final-insns=s1.dump
-quiet
$ /mnt/sdb1/build-157161/stage2-gcc/cc1 -O2 sha1.i -fdump-final-insns=s2.dump
-quiet
$ diff s[12].dump
7036a7037,7042
> (insn# 0 0 /mnt/svn/gcc-trunk/libiberty/sha1.c:401 (set (mem/s:SI (plus:DI
> (reg/f:DI 7 sp)
> (const_int 8 [0x8])) [3 x+32 S4 A256])
>
> (reg:SI 43 r14 [orig:989 D.4059 ] [989]))# {*movsi_1} (nil))
>
> (insn:TI# 0 0 /mnt/svn/gcc-trunk/libiberty/sha1.c:402 (set (mem/s:SI (plus:DI
> (reg/f:DI 7 sp)
> (const_int 12 [0xc])) [3 x+36 S4 A32])
>
> (reg:SI 42 r13 [orig:1001 D.4059 ] [1001]))# {*movsi_1} (nil))
>
7044,7049d7049
< (insn:TI# 0 0 /mnt/svn/gcc-trunk/libiberty/sha1.c:401 (set (mem/s:SI (plus:DI
(reg/f:DI 7 sp)
....
(long output)
Diffs for gcc to assert on failure will be attached.
--
Summary: -ftree-loop-distribution produces wrong code in
reload1.c:delete_output_reload(), bootstrap fails
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: zsojka at seznam dot cz
GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: x86_64-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43236