http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59311
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |vmakarov at redhat dot com
Component|c++ |rtl-optimization
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> ---
It looks like a LRA bug on x86. x.ii.212r.ira has
insn/f 202 3 2 2 (set (reg:SI 177)
(reg:SI 2 cx)) 86 {*movsi_internal}
(expr_list:REG_DEAD (reg:SI 2 cx)
(expr_list:REG_CFA_SET_VDRAP (reg:SI 177)
(nil))))
x.ii.213r.reload has
(insn/f 202 3 2 2 (set (mem/c:SI (plus:SI (reg/f:SI 6 bp)
(const_int -48 [0xffffffffffffffd0])) [0 %sfp+-48 S4 A32])
(reg:SI 2 cx)) 86 {*movsi_internal}
(expr_list:REG_CFA_SET_VDRAP (reg:SI 177)
(nil)))
Should the REG_CFA_SET_VDRAP note be dropped or should
dwarf2out_frame_debug handle
(gdb) call debug_rtx (insn)
(insn/f 202 254 2 2 (set (mem/c:SI (plus:SI (reg/f:SI 6 bp)
(const_int -48 [0xffffffffffffffd0])) [0 %sfp+-48 S4 A32])
(reg:SI 2 cx)) 86 {*movsi_internal}
(expr_list:REG_CFA_SET_VDRAP (reg:SI 177)
(nil)))
(gdb)
in
case REG_CFA_SET_VDRAP:
n = XEXP (note, 0);
if (REG_P (n))
{
dw_fde_ref fde = cfun->fde;
if (fde)
{
gcc_assert (fde->vdrap_reg == INVALID_REGNUM);
if (REG_P (n))
fde->vdrap_reg = dwf_regno (n);
}
}
handled_one = true;
break;