From e8095e803fe2b9d3b1200beeb2cbd47d2f419441 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 15 May 1993 10:43:42 -0400 Subject: [PATCH] (set_nonzero_bits_and_sign_copies): Don't record data for a a pseudo that is undefined on entry to a function. (set_nonzero_bits_and_sign_copies): Don't record data for a a pseudo that is undefined on entry to a function. When a pseudo is clobbered, show we don't know anything about it. From-SVN: r4471 --- gcc/combine.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/combine.c b/gcc/combine.c index 66375ff68e5a..e53d1a6b53f1 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -666,10 +666,18 @@ set_nonzero_bits_and_sign_copies (x, set) && REGNO (x) >= FIRST_PSEUDO_REGISTER && reg_n_sets[REGNO (x)] > 1 && reg_basic_block[REGNO (x)] < 0 + /* If this register is undefined at the start of the file, we can't + say what its contents were. */ + && ! (basic_block_live_at_start[0][REGNO (x) / REGSET_ELT_BITS] + & ((REGSET_ELT_TYPE) 1 << (REGNO (x) % REGSET_ELT_BITS))) && GET_MODE_BITSIZE (GET_MODE (x)) <= HOST_BITS_PER_WIDE_INT) { if (GET_CODE (set) == CLOBBER) - return; + { + reg_nonzero_bits[REGNO (x)] = GET_MODE_MASK (GET_MODE (x)); + reg_sign_bit_copies[REGNO (x)] = 0; + return; + } /* If this is a complex assignment, see if we can convert it into a simple assignment. */ -- 2.43.5