aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-12-10 12:45:01 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1992-12-10 12:45:01 -0500
commit4090a6b33d502fbee5098555aca7d907e464f204 (patch)
tree6f6cca32207f0e2fa6c08a4c64f37abcf592c0e5 /gcc
parent89e8a20f3ec0e3215b6fc8cce6747afba3093c15 (diff)
downloadgcc-4090a6b33d502fbee5098555aca7d907e464f204.zip
gcc-4090a6b33d502fbee5098555aca7d907e464f204.tar.gz
gcc-4090a6b33d502fbee5098555aca7d907e464f204.tar.bz2
(get_last_value): Never use value from later insn, even if reg is only
set once. From-SVN: r2856
Diffstat (limited to 'gcc')
-rw-r--r--gcc/combine.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 8d1a845..9632ab2 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -8803,12 +8803,11 @@ get_last_value (x)
return 0;
/* If the value was set in a later insn that the ones we are processing,
- we can't use it, but make a quick check to see if the previous insn
- set it to something. This is commonly the case when the same pseudo
- is used by repeated insns. */
+ we can't use it even if the register was only set once, but make a quick
+ check to see if the previous insn set it to something. This is commonly
+ the case when the same pseudo is used by repeated insns. */
- if (reg_n_sets[regno] != 1
- && INSN_CUID (reg_last_set[regno]) >= subst_low_cuid)
+ if (INSN_CUID (reg_last_set[regno]) >= subst_low_cuid)
{
rtx insn, set;