diff options
author | Bernd Schmidt <bernds@cygnus.co.uk> | 1999-08-27 09:39:14 +0000 |
---|---|---|
committer | Bernd Schmidt <crux@gcc.gnu.org> | 1999-08-27 09:39:14 +0000 |
commit | 6c1b3bf290b57d8adb19bda3ae15368a4a402a01 (patch) | |
tree | d990e8b1d637e4db51f9f8488d7b3a0e29227fea /gcc/combine.c | |
parent | 7cfc8a78302146d7c2a27ab6fe838c47c8d33f9b (diff) | |
download | gcc-6c1b3bf290b57d8adb19bda3ae15368a4a402a01.zip gcc-6c1b3bf290b57d8adb19bda3ae15368a4a402a01.tar.gz gcc-6c1b3bf290b57d8adb19bda3ae15368a4a402a01.tar.bz2 |
Fix for 'Deadly optimization bug' (see egcs mailing list archive)
From-SVN: r28928
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index dcd60c2..9bedd61 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -10832,6 +10832,11 @@ get_last_value (x) { rtx insn, set; + /* We can't do anything if the value is set in between the insns we are + processing. */ + if (INSN_CUID (reg_last_set[regno]) <= INSN_CUID (subst_insn)) + return 0; + /* We can not do anything useful in this case, because there is an instruction which is not on the insn chain. */ if (subst_prev_insn) |