+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):
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
&& remove_address_replacements
(get_secondary_mem (tem, rld[r].inmode, rld[r].opnum,
rld[r].when_needed)))
- pass = 2;
+ {
+ if (pass)
+ pass = 2;
+ }
#endif
}
}