Commit b383e255 by Eric Botcazou Committed by Eric Botcazou

re PR rtl-optimization/54290 (wrong code at -O2 with large offset)

	PR rtl-optimization/54290
	PR rtl-optimization/54644
	* reload1.c (choose_reload_regs): Fix thinko in previous change.

From-SVN: r191609
parent 88a4c78b
2012-09-21 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/54290
PR rtl-optimization/54644
* reload1.c (choose_reload_regs): Fix thinko in previous change.
2012-09-20 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.md (define_split for plus_eqsi):
......
......@@ -6991,16 +6991,17 @@ choose_reload_regs (struct insn_chain *chain)
If we succeeded removing some reload and we are doing a preliminary
pass just to remove such reloads, make another pass, since the
removal of one reload might allow us to inherit another one. */
else if (pass
&& rld[r].in
else if (rld[r].in
&& rld[r].out != rld[r].in
&& remove_address_replacements (rld[r].in))
pass = 2;
{
if (pass)
pass = 2;
}
#ifdef SECONDARY_MEMORY_NEEDED
/* If we needed a memory location for the reload, we also have to
remove its related reloads. */
else if (pass
&& rld[r].in
else if (rld[r].in
&& rld[r].out != rld[r].in
&& (tem = replaced_subreg (rld[r].in), REG_P (tem))
&& REGNO (tem) < FIRST_PSEUDO_REGISTER
......@@ -7009,7 +7010,10 @@ choose_reload_regs (struct insn_chain *chain)
&& remove_address_replacements
(get_secondary_mem (tem, rld[r].inmode, rld[r].opnum,
rld[r].when_needed)))
pass = 2;
{
if (pass)
pass = 2;
}
#endif
}
}
......
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