diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-09-19 15:42:53 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-09-19 15:42:53 -0400 |
commit | 4d9d7d9d3599160b7ffcb496c028d0461d9c1111 (patch) | |
tree | 8eee28d2d49175a82198a75bc9eadf28435442e5 | |
parent | 95ac8e67bcb7a8a4454c7cf2e48ee1cbd639992b (diff) | |
download | gcc-4d9d7d9d3599160b7ffcb496c028d0461d9c1111.zip gcc-4d9d7d9d3599160b7ffcb496c028d0461d9c1111.tar.gz gcc-4d9d7d9d3599160b7ffcb496c028d0461d9c1111.tar.bz2 |
(reg_set_last): Allow old value to be a SUBREG.
From-SVN: r2170
-rw-r--r-- | gcc/rtlanal.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 8ccae19..5b0af92 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -779,8 +779,8 @@ reg_set_last_1 (x, pat) /* Return the last value to which REG was set prior to INSN. If we can't find it easily, return 0. - We only return a REG or constant because it is too hard to check if a - MEM remains unchanged. */ + We only return a REG, SUBREG, or constant because it is too hard to + check if a MEM remains unchanged. */ rtx reg_set_last (x, insn) @@ -818,7 +818,8 @@ reg_set_last (x, insn) else if (reg_set_last_value) { if (CONSTANT_P (reg_set_last_value) - || (GET_CODE (reg_set_last_value) == REG + || ((GET_CODE (reg_set_last_value) == REG + || GET_CODE (reg_set_last_value) == SUBREG) && ! reg_set_between_p (reg_set_last_value, NEXT_INSN (insn), orig_insn))) return reg_set_last_value; |