aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2000-10-24 22:49:39 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2000-10-24 22:49:39 +0000
commitd7836e38b773cb5aaebc661e57704def6a17c5b5 (patch)
tree7a30b3612dfb94f5dfc0fbe00422e7ccb409a53b /gcc
parent5e2c51baa78757709c10038158b0195d106562e9 (diff)
downloadgcc-d7836e38b773cb5aaebc661e57704def6a17c5b5.zip
gcc-d7836e38b773cb5aaebc661e57704def6a17c5b5.tar.gz
gcc-d7836e38b773cb5aaebc661e57704def6a17c5b5.tar.bz2
do not propagate constants into jump_insn's for machines with CC0, more than once
From-SVN: r37039
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/gcse.c8
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 30d515d..9ab283a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 1f0aa95..484eb1a 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -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