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:
Richard Henderson 2002-02-07 00:57:04 -08:00 committed by Richard Henderson
parent 19c881777c
commit 9b462c4274
3 changed files with 11 additions and 6 deletions

View File

@ -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

View File

@ -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];

View File

@ -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);
}
}