https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91527

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ra
             Status|NEW                         |ASSIGNED
                 CC|                            |vmakarov at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
This looks like a latent issue to me.  IRA is confused about the reg-equiv
note in

(insn 4 24 5 2 (set (subreg:V4SI (reg/v:SI 90 [ c ]) 0)
        (subreg:V4SI (reg:SI 100) 0))
"/space/rguenther/src/svn/trunk2/gcc/testsuite/g++.dg/tree-ssa/pr21463.C":11:4
1248 {movv4si_internal}
     (expr_list:REG_DEAD (reg:SI 100)
        (expr_list:REG_EQUIV (mem/c:SI (plus:DI (reg/f:DI 16 argp)
                    (const_int 16 [0x10])) [1 c+0 S4 A64])
            (nil))))

expecting the SET_DEST to be a REG_P (it's a paradoxical subreg).  Not sure
if that's a requirement for RTL in general(?) but at least the docs say
the dest may be a strict_low_part or zero_extract as well.

STV doesn't seem to do anything with notes and DF doesn't track uses in
notes (eh).  So it's probably safest to kill all of them on converted
insns?!  For the timode chain we update equal/equiv notes for REG dests.

I have a patch.

Reply via email to