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.

Reply via email to