reload.c (combine_reloads): When trying to use a dying register...

* reload.c (combine_reloads): When trying to use a dying register,
	check whether it's uninitialized and don't use if so.

From-SVN: r123986
This commit is contained in:
Bernd Schmidt 2007-04-20 00:08:46 +00:00 committed by Bernd Schmidt
parent 52fdc9b5d9
commit c1673e1b5a
2 changed files with 11 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2007-04-19 Bernd Schmidt <bernd.schmidt@analog.com>
* reload.c (combine_reloads): When trying to use a dying register,
check whether it's uninitialized and don't use if so.
2007-04-19 Brooks Moses <brooks.moses@codesourcery.com>
* fold-const.c: Remove prototypes for native_encode_expr and

View File

@ -1853,7 +1853,12 @@ combine_reloads (void)
|| ! (TEST_HARD_REG_BIT
(reg_class_contents[(int) rld[secondary_out].class],
REGNO (XEXP (note, 0)))))))
&& ! fixed_regs[REGNO (XEXP (note, 0))])
&& ! fixed_regs[REGNO (XEXP (note, 0))]
/* Check that we don't use a hardreg for an uninitialized
pseudo. See also find_dummy_reload(). */
&& (ORIGINAL_REGNO (XEXP (note, 0)) < FIRST_PSEUDO_REGISTER
|| ! bitmap_bit_p (ENTRY_BLOCK_PTR->il.rtl->global_live_at_end,
ORIGINAL_REGNO (XEXP (note, 0)))))
{
rld[output_reload].reg_rtx
= gen_rtx_REG (rld[output_reload].outmode,