From c1673e1b5a35cd6fe10a088d458ca0133a71eebd Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Fri, 20 Apr 2007 00:08:46 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/reload.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e62e9a9dbf8..396579e94a5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-04-19 Bernd Schmidt + + * 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 * fold-const.c: Remove prototypes for native_encode_expr and diff --git a/gcc/reload.c b/gcc/reload.c index aa22671c13a..b0374d8c106 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -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, -- 2.30.2