re PR rtl-optimization/65123 (lra remat places insn which breaks data flow)

2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/65123
	* lra-remat.c (operand_to_remat): Check hard regs in insn
	definition too.

From-SVN: r220946
This commit is contained in:
Vladimir Makarov 2015-02-24 18:11:38 +00:00 committed by Vladimir Makarov
parent ff544f6bcc
commit 51753c1498
2 changed files with 16 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2015-02-24 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/65123
* lra-remat.c (operand_to_remat): Check hard regs in insn
definition too.
2015-02-24 Nick Clifton <nickc@redhat.com>
* config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on

View File

@ -459,6 +459,16 @@ operand_to_remat (rtx_insn *insn)
reg2 = reg2->next)
if (reg2->type == OP_OUT && reg->regno == reg2->regno)
return -1;
if (reg->regno < FIRST_PSEUDO_REGISTER)
for (struct lra_insn_reg *reg2 = static_id->hard_regs;
reg2 != NULL;
reg2 = reg2->next)
if (reg2->type == OP_OUT
&& reg->regno <= reg2->regno
&& (reg2->regno
< (reg->regno
+ hard_regno_nregs[reg->regno][reg->biggest_mode])))
return -1;
}
/* Find the rematerialization operand. */
int nop = static_id->n_operands;