[Bug rtl-optimization/57963] New: LRA S/390: esa mode failure memcpy-chk
krebbel at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jul 23 15:11:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57963
Bug ID: 57963
Summary: LRA S/390: esa mode failure memcpy-chk
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: krebbel at gcc dot gnu.org
memcpy-chk with -O2 fails if compiled with lra enabled.
It succeeds with -mno-lra.
With lra an insn storing into the literal pool is being emitted:
ira:
(insn 126 127 129 11 (parallel [
(set (reg/f:SI 60 [ D.1911 ])
(plus:SI (reg/v/f:SI 126 [ buf3 ])
(const_int 14 [0xe])))
(clobber (reg:CC 33 %cc))
])
/build/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c:131
297 {*addsi3}
(expr_list:REG_UNUSED (reg:CC 33 %cc)
(expr_list:REG_EQUIV (const:SI (plus:SI (symbol_ref:SI ("buf1") [flags
0x400] <var_decl 0x7b97c9c0 buf1>)
(const_int 14 [0xe])))
(nil))))
(insn 129 126 135 11 (set (reg/f:SI 261)
(mem/u/c:SI (symbol_ref/u:SI ("*.LC69") [flags 0x2]) [3 S4 A32]))
/build/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c:131
68 {*movsi_esa}
(expr_list:REG_EQUIV (const:SI (plus:SI (symbol_ref:SI ("buf1") [flags
0x400] <var_decl 0x7b97c9c0 buf1>)
(const_int 14 [0xe])))
(nil)))
reload:
126: {r406:SI=r406:SI+0xe;clobber %cc:CC;}
REG_UNUSED %cc:CC
REG_EQUIV const(`buf1'+0xe)
Inserting insn reload before:
829: r406:SI=r126:SI
Inserting insn reload after:
830: r60:SI=r406:SI
alt=1,overall=1,losers=0,rld_nregs=0
Choosing alt 1 in insn 830: (0) d (1) d {*movsi_esa}
alt=1,overall=1,losers=0,rld_nregs=0
Choosing alt 1 in insn 829: (0) d (1) d {*movsi_esa}
Removing equiv init insn 129 (freq=9944)
129: r261:SI=[`*.LC69']
REG_EQUIV const(`buf1'+0xe)
deleting insn with uid = 129.
Changing pseudo 60 in operand 0 of insn 830 on equiv [`*.LC69']
alt=1,overall=609,losers=1,rld_nregs=1
alt=2,overall=17,losers=2,rld_nregs=1
alt=3,overall=0,losers=0,rld_nregs=0
Choosing alt 3 in insn 830: (0) R (1) d {*movsi_esa}
(insn 829 828 126 11 (set (reg/f:SI 7 %r7 [orig:60 D.1911 ] [60])
(reg/v/f:SI 2 %r2 [orig:126 buf3 ] [126]))
/build/gcc-head/gcc/testsuite/gcc.c-torture/execute/
builtins/memcpy-chk.c:131 68 {*movsi_esa}
(nil))
(insn 126 829 830 11 (parallel [
(set (reg/f:SI 7 %r7 [orig:60 D.1911 ] [60])
(plus:SI (reg/f:SI 7 %r7 [orig:60 D.1911 ] [60])
(const_int 14 [0xe])))
(clobber (reg:CC 33 %cc))
])
/build/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c:131
297 {*addsi3}
(expr_list:REG_EQUIV (const:SI (plus:SI (symbol_ref:SI ("buf1") [flags
0x400] <var_decl 0x7b97c9c
0 buf1>)
(const_int 14 [0xe])))
(nil)))
(insn 830 126 129 11 (set (mem/u/c:SI (symbol_ref/u:SI ("*.LC69") [flags 0x2])
[3 S4 A32])
(reg/f:SI 7 %r7 [orig:60 D.1911 ] [60]))
/build/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c:131
68 {*movsi_esa}
(expr_list:REG_DEAD (reg/f:SI 7 %r7 [orig:60 D.1911 ] [60])
(nil)))
insn 830 writes to a literal pool slot. The testcase fails with a segfault due
to this.
More information about the Gcc-bugs
mailing list