lra: A multiple_sets is not a simple_move_p (PR73650)
authorSegher Boessenkool <segher@kernel.crashing.org>
Mon, 15 Aug 2016 16:17:21 +0000 (18:17 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Mon, 15 Aug 2016 16:17:21 +0000 (18:17 +0200)
commit2008be405c16e8b7ca5399fb9e6fb25aa92f03a3
tree52262637556ee25a677df422ac164d71edacb802
parent5c578ae4348bddb97991348c2d0a05e3e7d7ad5a
lra: A multiple_sets is not a simple_move_p (PR73650)

In the PR we have a PARALLEL of a move and a compare (a "mr." instruction).
The compare is dead, so single_set on it returns just the move.  Then,
simple_move_p returns true; but the instruction does need reloads in this
case.  This patch solves this by making simple_move_p return false for
every multiple_sets instruction.

PR rtl-optimization/73650
* lra-constraints.c (simple_move_p): If the insn is multiple_sets
it is not a simple move.

From-SVN: r239483
gcc/ChangeLog
gcc/lra-constraints.c