This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]