aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-11-01 02:19:25 +0000
committerJeff Law <law@gcc.gnu.org>1999-10-31 19:19:25 -0700
commite26ef527af1d8933591cb8de133a645363508cb3 (patch)
tree343a850c98b31fee10c37d787d9d63d4e05fa27a /gcc
parent99f44eba5f589e1630ba622a706800417d3d4269 (diff)
downloadgcc-e26ef527af1d8933591cb8de133a645363508cb3.zip
gcc-e26ef527af1d8933591cb8de133a645363508cb3.tar.gz
gcc-e26ef527af1d8933591cb8de133a645363508cb3.tar.bz2
cse.c (cse_insn): If an insn has only a single set...
* cse.c (cse_insn): If an insn has only a single set, SRC_EQV is nonzero and the single set does not have an elt, then assign it an elt. From-SVN: r30304
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/cse.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b4c4f71..9d6da58 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -34,6 +34,10 @@ Sun Oct 31 13:32:15 CET 1999 Marc Lehmann <pcg@goof.com>
Sun Oct 31 01:53:30 1999 Jeffrey A Law (law@cygnus.com)
+ * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
+ is nonzero and the single set does not have an elt, then assign
+ it an elt.
+
* simplify-rtx.c: New file.
* Makefile.in (OBJS): Add simplify-rtx.o
(simplify-rtx.o): Add dependencies.
diff --git a/gcc/cse.c b/gcc/cse.c
index e948513..14278ae 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -5733,8 +5733,9 @@ cse_insn (insn, libcall_insn)
does not yet have an elt, and if so set the elt of the set source
to src_eqv_elt. */
for (i = 0; i < n_sets; i++)
- if (sets[i].rtl && sets[i].src_elt == 0
- && rtx_equal_p (SET_SRC (sets[i].rtl), src_eqv))
+ if (n_sets == 1
+ || (sets[i].rtl && sets[i].src_elt == 0
+ && rtx_equal_p (SET_SRC (sets[i].rtl), src_eqv)))
sets[i].src_elt = src_eqv_elt;
}