This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Reloads broken on VAX. (after sunday)
- From: Matt Thomas <matt at 3am-software dot com>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 01 Oct 2002 23:42:24 -0700
- Subject: Reloads broken on VAX. (after sunday)
When compiling libf2c/libI77/backspace.c, the following two insn's are
incorrectly merged.
(insn 3 523 4 0 0x0 (set (reg/v/f:SI 22)
(mem/f:SI (plus:SI (reg/f:SI 12 %ap)
(const_int 4 [0x4])) [5 a+0 S4 A32])) 16 {movsi} (nil)
(expr_list:REG_EQUIV (mem/f:SI (plus:SI (reg/f:SI 12 %ap)
(const_int 4 [0x4])) [5 a+0 S4 A32])
(nil)))
(insn 13 12 14 0 0x484455ac (set (reg:SI 153)
(mem/s:SI (plus:SI (reg/v/f:SI 22)
(const_int 4 [0x4])) [4 <variable>.aunit+0 S4 A32])) 16
{movsi}
Get merged to (in postreload):
(insn 13 12 14 0 0x484455ac (set (reg:SI 1 %r1 [153])
(mem/s:SI (plus:SI (mem/f:SI (plus:SI (reg/f:SI 12 %ap)
(const_int 4 [0x4])) [5 a+0 S4 A32])
(const_int 4 [0x4])) [4 <variable>.aunit+0 S4 A32])) 16
{movsi}
Now this was never given to GO_IF_LEGITIMATE_ADDRESS to approve but was
given to print_operand_address (which died on it). This is not related to
the VAX ELF changes since I've been running with them.
I see similar breakage compiling unwind-dw2.c:
(plus:SI (mem:SI (plus:SI (reg/f:SI 13 %fp)
(const_int -24 [0xffffffe8])) [28 unused_rs S4 A8])
(const_int 136 [0x88]))
/export/toolchain/gcc/gcc/unwind-dw2.c: In function `execute_cfa_program':
/export/toolchain/gcc/gcc/unwind-dw2.c:892: internal compiler error: in
print_operand_address, at config/vax/vax.c:357
gcc version 3.3 20020929 (experimental) was working properly
gcc version 3.3 20021001 (experimental) is broken.
--
Matt Thomas Internet: matt@3am-software.com
3am Software Foundry WWW URL: http://www.3am-software.com/bio/matt/
Cupertino, CA Disclaimer: I avow all knowledge of this message