mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-05 08:00:26 +08:00
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): RELOAD_FOR_OTHER_ADDRESS register might be reused as RELOAD_FOR_OPADDR_ADDR register. From-SVN: r77003
This commit is contained in:
parent
a1ddb3556b
commit
808ededc6f
@ -1,3 +1,11 @@
|
||||
2004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
PR optimization/12147
|
||||
* reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
|
||||
RELOAD_FOR_OPADDR_ADDR.
|
||||
(reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
|
||||
might be reused as RELOAD_FOR_OPADDR_ADDR register.
|
||||
|
||||
2004-01-30 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* reload.c (get_secondary_mem): Fix updating of
|
||||
|
@ -4316,6 +4316,7 @@ reload_reg_free_p (unsigned int regno, int opnum, enum reload_type 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;
|
||||
|
||||
@ -4494,6 +4495,7 @@ reload_reg_reaches_end_p (unsigned int regno, int opnum, enum reload_type 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));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user