Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/gnu/dist/gcc Fix for a misoptimization, from the egcs/gcc ma...



details:   https://anonhg.NetBSD.org/src/rev/f2c7851c8ae1
branches:  trunk
changeset: 476034:f2c7851c8ae1
user:      drochner <drochner%NetBSD.org@localhost>
date:      Sat Sep 04 11:18:40 1999 +0000

description:
Fix for a misoptimization, from the egcs/gcc mailing list
(http://egcs.cygnus.com/ml/gcc/1999-08/msg00760.html).
Log message:
        * combine.c (get_last_value): Don't look for earlier sets if the last
        known set is somewhere in between the insns being combined.

diffstat:

 gnu/dist/gcc/combine.c |  5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diffs (15 lines):

diff -r 181d0540a9bc -r f2c7851c8ae1 gnu/dist/gcc/combine.c
--- a/gnu/dist/gcc/combine.c    Sat Sep 04 09:41:15 1999 +0000
+++ b/gnu/dist/gcc/combine.c    Sat Sep 04 11:18:40 1999 +0000
@@ -10824,6 +10824,11 @@
     {
       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)



Home | Main Index | Thread Index | Old Index