From: Chris Lattner Date: Wed, 29 May 2002 16:23:28 +0000 (+0000) Subject: ssa.c (rename_insn_1): Rename uses of undefined registers to prevent confusion if... X-Git-Tag: releases/gcc-3.3.0~4736 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=45b1f7c746372e7dc48d79c9b5089ce12cbef1e5;p=thirdparty%2Fgcc.git ssa.c (rename_insn_1): Rename uses of undefined registers to prevent confusion if/when... * ssa.c (rename_insn_1): Rename uses of undefined registers to prevent confusion if/when the register is defined. From-SVN: r54002 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5c6455038e71..9ff0f270de46 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-05-29 Chris Lattner + + * ssa.c (rename_insn_1): Rename uses of undefined registers to + prevent confusion if/when the register is defined. + 2002-05-29 Hans-Peter Nilsson PR target/6838 diff --git a/gcc/ssa.c b/gcc/ssa.c index 835bf55ce0c1..b81a8ac78312 100644 --- a/gcc/ssa.c +++ b/gcc/ssa.c @@ -916,18 +916,26 @@ rename_insn_1 (ptr, data) } case REG: - if (CONVERT_REGISTER_TO_SSA_P (REGNO (x)) && - REGNO (x) < ssa_max_reg_num) + if (CONVERT_REGISTER_TO_SSA_P (REGNO (x)) + && REGNO (x) < ssa_max_reg_num) { rtx new_reg = ssa_rename_to_lookup (x); - if (new_reg != NULL_RTX && new_reg != RENAME_NO_RTX) + if (new_reg != RENAME_NO_RTX) { - if (GET_MODE (x) != GET_MODE (new_reg)) - abort (); - *ptr = new_reg; + if (new_reg != NULL_RTX) + { + if (GET_MODE (x) != GET_MODE (new_reg)) + abort (); + *ptr = new_reg; + } + else + { + /* Undefined value used, rename it to a new pseudo register so + that it cannot conflict with an existing register */ + *ptr = gen_reg_rtx (GET_MODE(x)); + } } - /* Else this is a use before a set. Warn? */ } return -1;