This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] lra: A multiple_sets is not a simple_move_p (PR73650)


On 08/12/2016 12:38 PM, Segher Boessenkool wrote:
Hi!

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.

Bootstrapped and regression checked on powerpc64-linux (-m64,-m32).
Is this okay for trunk?


Segher


2016-08-12  Segher Boessenkool  <segher@kernel.crashing.org>

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

Though I do wonder if it would be advantageous to try and rewrite such insns.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]