Commit f2eb49dc by Bernd Schmidt Committed by Bernd Schmidt

re PR rtl-optimization/10692 ([m68k] miscompilation of perl with -O2 -fPIC)

	* reload1.c (delete_output_reload): Don't count output in n_inherited.

	Revert
	2005-01-05  Richard Henderson  <rth@redhat.com>
	PR rtl-opt/10692
	* reload1.c (do_input_reload): Restrict the optimization deleteing
	a previous output reload to RELOAD_FOR_INPUT.

From-SVN: r123913
parent 710a179f
2007-04-17 Bernd Schmidt <bernd.schmidt@analog.com>
* reload1.c (delete_output_reload): Don't count output in n_inherited.
Revert
2005-01-05 Richard Henderson <rth@redhat.com>
PR rtl-opt/10692
* reload1.c (do_input_reload): Restrict the optimization deleteing
a previous output reload to RELOAD_FOR_INPUT.
2007-04-17 Dorit Nuzman <dorit@il.ibm.com> 2007-04-17 Dorit Nuzman <dorit@il.ibm.com>
* tree-vectorizer.h (stmt_vec_info_type): Add enum value * tree-vectorizer.h (stmt_vec_info_type): Add enum value
......
...@@ -7156,10 +7156,6 @@ do_input_reload (struct insn_chain *chain, struct reload *rl, int j) ...@@ -7156,10 +7156,6 @@ do_input_reload (struct insn_chain *chain, struct reload *rl, int j)
actually no need to store the old value in it. */ actually no need to store the old value in it. */
if (optimize if (optimize
/* Only attempt this for input reloads; for RELOAD_OTHER we miss
that there may be multiple uses of the previous output reload.
Restricting to RELOAD_FOR_INPUT is mostly paranoia. */
&& rl->when_needed == RELOAD_FOR_INPUT
&& (reload_inherited[j] || reload_override_in[j]) && (reload_inherited[j] || reload_override_in[j])
&& rl->reg_rtx && rl->reg_rtx
&& REG_P (rl->reg_rtx) && REG_P (rl->reg_rtx)
...@@ -8010,16 +8006,7 @@ delete_output_reload (rtx insn, int j, int last_reload_reg) ...@@ -8010,16 +8006,7 @@ delete_output_reload (rtx insn, int j, int last_reload_reg)
if (rtx_equal_p (reg2, reg)) if (rtx_equal_p (reg2, reg))
{ {
if (reload_inherited[k] || reload_override_in[k] || k == j) if (reload_inherited[k] || reload_override_in[k] || k == j)
{ n_inherited++;
n_inherited++;
reg2 = rld[k].out_reg;
if (! reg2)
continue;
while (GET_CODE (reg2) == SUBREG)
reg2 = XEXP (reg2, 0);
if (rtx_equal_p (reg2, reg))
n_inherited++;
}
else else
return; return;
} }
......
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