Commit 9125b9fc by Vladimir Makarov Committed by Vladimir Makarov

re PR rtl-optimization/79949 (ICE in Max. number of generated reload insns per…

re PR rtl-optimization/79949 (ICE in Max. number of generated reload insns per insn is achieved (90))

2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/79949
	* lra-constraints.c (process_alt_operands): Check memory when
	trying to predict a cycle.  Print about the overall increase.

From-SVN: r246003
parent 16967aff
2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/79949
* lra-constraints.c (process_alt_operands): Check memory when
trying to predict a cycle. Print about the overall increase.
2017-03-09 Richard Biener <rguenther@suse.de> 2017-03-09 Richard Biener <rguenther@suse.de>
PR middle-end/79971 PR middle-end/79971
......
...@@ -2766,13 +2766,15 @@ process_alt_operands (int only_alternative) ...@@ -2766,13 +2766,15 @@ process_alt_operands (int only_alternative)
&& REG_P (no_subreg_reg_operand[1]) && REG_P (no_subreg_reg_operand[1])
/* Check that we reload memory not the memory /* Check that we reload memory not the memory
address. */ address. */
&& !curr_alt_offmemok[0] && ! (curr_alt_offmemok[0]
&& MEM_P (no_subreg_reg_operand[0]))
&& reg_in_class_p (no_subreg_reg_operand[1], curr_alt[0])) && reg_in_class_p (no_subreg_reg_operand[1], curr_alt[0]))
|| (curr_alt_win[0] && ! curr_alt_win[1] || (curr_alt_win[0] && ! curr_alt_win[1]
&& REG_P (no_subreg_reg_operand[0]) && REG_P (no_subreg_reg_operand[0])
/* Check that we reload memory not the memory /* Check that we reload memory not the memory
address. */ address. */
&& !curr_alt_offmemok[1] && ! (curr_alt_offmemok[1]
&& MEM_P (no_subreg_reg_operand[1]))
&& reg_in_class_p (no_subreg_reg_operand[0], curr_alt[1]) && reg_in_class_p (no_subreg_reg_operand[0], curr_alt[1])
&& (! CONST_POOL_OK_P (curr_operand_mode[1], && (! CONST_POOL_OK_P (curr_operand_mode[1],
no_subreg_reg_operand[1]) no_subreg_reg_operand[1])
...@@ -2785,8 +2787,11 @@ process_alt_operands (int only_alternative) ...@@ -2785,8 +2787,11 @@ process_alt_operands (int only_alternative)
&& GET_CODE (no_subreg_reg_operand[1]) != PLUS))) && GET_CODE (no_subreg_reg_operand[1]) != PLUS)))
{ {
/* We have a move insn and a new reload insn will be similar /* We have a move insn and a new reload insn will be similar
to the current insn. We should avoid such situation as it to the current insn. We should avoid such situation as
results in LRA cycling. */ it results in LRA cycling. */
if (lra_dump_file != NULL)
fprintf (lra_dump_file,
" Cycle danger: overall += LRA_MAX_REJECT\n");
overall += LRA_MAX_REJECT; overall += LRA_MAX_REJECT;
} }
ok_p = true; ok_p = true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment