From: Ulrich Weigand Date: Fri, 5 Mar 2004 20:16:49 +0000 (+0000) Subject: re PR rtl-optimization/12147 (Wrong code with -O2 in context of reload) X-Git-Tag: releases/gcc-3.3.4~198 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=04fc4d214680893381bd64703fa473c9d50b9df1;p=thirdparty%2Fgcc.git re PR rtl-optimization/12147 (Wrong code with -O2 in context of reload) PR optimization/12147 * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with RELOAD_FOR_OPADDR_ADDR. (reload_reg_reaches_end_p): A RELOAD_FOR_OTHER_ADDRESS register might be reused as RELOAD_FOR_OPADDR_ADDR register. From-SVN: r78981 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9b4e41a9b6e6..c6e20f99f292 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2004-03-05 Ulrich Weigand + + PR optimization/12147 + * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with + RELOAD_FOR_OPADDR_ADDR. + (reload_reg_reaches_end_p): A RELOAD_FOR_OTHER_ADDRESS register + might be reused as RELOAD_FOR_OPADDR_ADDR register. + 2004-03-05 Ian Lance Taylor PR target/1532 diff --git a/gcc/reload1.c b/gcc/reload1.c index 116f0a0ffebf..edab53a0e85a 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -4397,6 +4397,7 @@ reload_reg_free_p (regno, opnum, type) /* In use for anything means we can't use it for RELOAD_OTHER. */ if (TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno) || TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno) + || TEST_HARD_REG_BIT (reload_reg_used_in_op_addr_reload, regno) || TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno)) return 0; @@ -4578,6 +4579,7 @@ reload_reg_reaches_end_p (regno, opnum, type) return 0; return (! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno) + && ! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr_reload, regno) && ! TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno) && ! TEST_HARD_REG_BIT (reload_reg_used, regno));