diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ssa.c | 23 |
2 files changed, 15 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 60efbe9..683f15d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-09-26 Chris Lattner <sabre@nondot.org> + + * ssa.c (rename_insn_1): Handle RENAME_NO_RTX correctly when + handling undefined values. + 2002-09-26 Richard Henderson <rth@redhat.com> PR opt/7520 @@ -924,20 +924,17 @@ rename_insn_1 (ptr, data) { rtx new_reg = ssa_rename_to_lookup (x); - if (new_reg != RENAME_NO_RTX) + if (new_reg != RENAME_NO_RTX && new_reg != NULL_RTX) { - 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)); - } + 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)); } } return -1; |