do not propagate constants into jump_insn's for machines with CC0, more than once
authorAldy Hernandez <aldyh@redhat.com>
Tue, 24 Oct 2000 22:49:39 +0000 (22:49 +0000)
committerAldy Hernandez <aldyh@gcc.gnu.org>
Tue, 24 Oct 2000 22:49:39 +0000 (22:49 +0000)
From-SVN: r37039

gcc/ChangeLog
gcc/gcse.c

index 30d515d829639ceedbccf3c783d35a1fd49fe1b2..9ab283a5966fa42ce632659920be66ff4837e8d2 100644 (file)
@@ -1,3 +1,8 @@
+2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
+
+        * gcse.c (cprop_insn): do not propagate constants into jump_insn
+        for machines with CC0 more than once.
+
 2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
 
         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
index 1f0aa95ac7399ca0a6e1f8af1411af788d3b8d22..484eb1a16c6c377e8e42a07b382ce430147837e4 100644 (file)
@@ -3948,7 +3948,13 @@ cprop_insn (insn, alter_jumps)
                   && GET_CODE (NEXT_INSN (insn)) == JUMP_INSN
                   && condjump_p (NEXT_INSN (insn))
                   && ! simplejump_p (NEXT_INSN (insn)))
-           changed |= cprop_cc0_jump (insn, reg_used, src);
+            {
+             if (cprop_cc0_jump (insn, reg_used, src))
+               {
+                 changed = 1;
+                 break;
+               }
+           }
 #endif
        }
       else if (GET_CODE (src) == REG