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

Alan Modra <amodra at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amodra at gmail dot com

--- Comment #14 from Alan Modra <amodra at gmail dot com> ---
I agree with your analysis, and that combine_and_move_insns has a bug.  (That
doesn't mean I should be viewed as any sort of expert on ira.c.  The fact that
my name appears on git blame for much of combine_and_move_insns is just due to
me splitting out existing code into that function!)

"!multiple_sets (def_insn)" seems the correct solution too, but I'd be inclined
to move that test earlier, either before or after can_throw_internal on the
grounds that asm insns might have the same problem with multiple sets.  Perhaps
comment that instructions with multiple sets can only be moved if DF analysis
is performed for all of the registers set.

Reply via email to