Commit 9b462c42 by Richard Henderson Committed by Richard Henderson

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
parent 19c88177
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> 2002-02-07 Alexandre Oliva <aoliva@redhat.com>
* config/mips/mips.md (define_delay) [mips16]: Adjust required * config/mips/mips.md (define_delay) [mips16]: Adjust required
......
...@@ -744,12 +744,12 @@ find_base_value (src) ...@@ -744,12 +744,12 @@ find_base_value (src)
return new_reg_base_value[regno]; return new_reg_base_value[regno];
/* If a pseudo has a known base value, return it. Do not do this /* 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 for non-fixed hard regs since it can result in a circular
chain for registers which have values at function entry. dependency chain for registers which have values at function entry.
The test above is not sufficient because the scheduler may move The test above is not sufficient because the scheduler may move
a copy out of an arg reg past the NOTE_INSN_FUNCTION_BEGIN. */ 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 && regno < reg_base_value_size
&& reg_base_value[regno]) && reg_base_value[regno])
return reg_base_value[regno]; return reg_base_value[regno];
......
...@@ -7637,9 +7637,9 @@ loop_regs_update (loop, seq) ...@@ -7637,9 +7637,9 @@ loop_regs_update (loop, seq)
} }
else else
{ {
rtx set = single_set (seq); if (GET_CODE (seq) == SET
if (set && GET_CODE (SET_DEST (set)) == REG) && GET_CODE (SET_DEST (seq)) == REG)
record_base_value (REGNO (SET_DEST (set)), SET_SRC (set), 0); record_base_value (REGNO (SET_DEST (seq)), SET_SRC (seq), 0);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment