diff options
author | Richard Henderson <rth@redhat.com> | 2002-02-07 00:57:04 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-02-07 00:57:04 -0800 |
commit | 9b462c4274cd675e51fe0b856a903828d78d7cd7 (patch) | |
tree | e762c2f5f7d5a1e88c4f53877a61a162f6301be0 /gcc | |
parent | 19c881777cb933a3a5206b49ea4598070fb3b594 (diff) | |
download | gcc-9b462c4274cd675e51fe0b856a903828d78d7cd7.zip gcc-9b462c4274cd675e51fe0b856a903828d78d7cd7.tar.gz gcc-9b462c4274cd675e51fe0b856a903828d78d7cd7.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/alias.c | 6 | ||||
-rw-r--r-- | gcc/loop.c | 6 |
3 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ca0e395..29ef508 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/alias.c b/gcc/alias.c index a84d894..95b16ca 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -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); } } |