mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 00:47:25 +08:00
alias.c (find_base_value): Recall base values for fixed hard regs.
* alias.c (find_base_value): Recall base values for fixed hard regs. * loop.c (loop_regs_update): Don't use single_set on non-insns. From-SVN: r49570
This commit is contained in:
parent
19c881777c
commit
9b462c4274
@ -1,3 +1,8 @@
|
||||
2002-02-07 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* alias.c (find_base_value): Recall base values for fixed hard regs.
|
||||
* loop.c (loop_regs_update): Don't use single_set on non-insns.
|
||||
|
||||
2002-02-07 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* config/mips/mips.md (define_delay) [mips16]: Adjust required
|
||||
|
@ -744,12 +744,12 @@ find_base_value (src)
|
||||
return new_reg_base_value[regno];
|
||||
|
||||
/* If a pseudo has a known base value, return it. Do not do this
|
||||
for hard regs since it can result in a circular dependency
|
||||
chain for registers which have values at function entry.
|
||||
for non-fixed hard regs since it can result in a circular
|
||||
dependency chain for registers which have values at function entry.
|
||||
|
||||
The test above is not sufficient because the scheduler may move
|
||||
a copy out of an arg reg past the NOTE_INSN_FUNCTION_BEGIN. */
|
||||
if (regno >= FIRST_PSEUDO_REGISTER
|
||||
if ((regno >= FIRST_PSEUDO_REGISTER || fixed_regs[regno])
|
||||
&& regno < reg_base_value_size
|
||||
&& reg_base_value[regno])
|
||||
return reg_base_value[regno];
|
||||
|
@ -7637,9 +7637,9 @@ loop_regs_update (loop, seq)
|
||||
}
|
||||
else
|
||||
{
|
||||
rtx set = single_set (seq);
|
||||
if (set && GET_CODE (SET_DEST (set)) == REG)
|
||||
record_base_value (REGNO (SET_DEST (set)), SET_SRC (set), 0);
|
||||
if (GET_CODE (seq) == SET
|
||||
&& GET_CODE (SET_DEST (seq)) == REG)
|
||||
record_base_value (REGNO (SET_DEST (seq)), SET_SRC (seq), 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user