https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79584
Alan Modra <amodra at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2017-02-21
CC| |amodra at gmail dot com
Assignee|unassigned at gcc dot gnu.org |amodra at gmail dot com
Ever confirmed|0 |1
--- Comment #2 from Alan Modra <amodra at gmail dot com> ---
I don't see a -mno-lra ICE with r245619 (plus a few local patches), but do
reproduce the lra ICE. Coming out of ira the following insn sets the reg that
feeds into the insn that ICEs (the reg doesn't get a hard reg so the mem equiv
is used).
(insn 7 8 11 2 (set (reg:SI 155 [ i.0_1 ])
(mem/c:SI (lo_sum:SI (reg/f:SI 158)
(symbol_ref:SI ("i") [flags 0xc4] <var_decl 0x7f4f8f40d7e0
i>)) [1 i+0 S4 A32]))
"/home/alan/src/gcc.git/gcc/testsuite/c-c++-common/dfp/pr35620.c":18 480
{*movsi_internal1}
(expr_list:REG_DEAD (reg/f:SI 158)
(expr_list:REG_EQUIV (mem/j/c:SI (lo_sum:SI (reg/f:SI 160)
(symbol_ref:SI ("u") [flags 0x84] <var_decl 0x7f4f8f40d870
u>)) [2 u.b+0 S4 A32])
(nil))))
The REG_EQUIV is one from add_store_equivs. It looks quite bogus to me.