aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJohn Wehle <john@feith.com>2000-04-12 05:03:32 +0000
committerJohn Wehle <wehle@gcc.gnu.org>2000-04-12 05:03:32 +0000
commite8019e47f6e814a44026e11fc718688a81217a3f (patch)
tree3385f42b17aa4c2f060d8392479e004d13944c45 /gcc
parent8e3f90945d7686914c31a21fcd6cf7b3a5901753 (diff)
downloadgcc-e8019e47f6e814a44026e11fc718688a81217a3f.zip
gcc-e8019e47f6e814a44026e11fc718688a81217a3f.tar.gz
gcc-e8019e47f6e814a44026e11fc718688a81217a3f.tar.bz2
cse.c (delete_trivially_dead_insns): Also delete insns that copy a register to itself where the destination is a...
* cse.c (delete_trivially_dead_insns): Also delete insns that copy a register to itself where the destination is a strict_low_part. From-SVN: r33090
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cse.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d10c3ce..7e5b1f7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Wed Apr 12 01:00:44 EDT 2000 John Wehle (john@feith.com)
+
+ * cse.c (delete_trivially_dead_insns): Also delete insns
+ that copy a register to itself where the destination is
+ a strict_low_part.
+
2000-04-11 Richard Henderson <rth@cygnus.com>
* flow.c (struct propagate_block_info): Add new_dead, new_live.
diff --git a/gcc/cse.c b/gcc/cse.c
index aa26539..967c6f9 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7269,6 +7269,10 @@ delete_trivially_dead_insns (insns, nreg)
&& rtx_equal_p (SET_DEST (PATTERN (insn)),
SET_SRC (PATTERN (insn))))
;
+ else if (GET_CODE (SET_DEST (PATTERN (insn))) == STRICT_LOW_PART
+ && rtx_equal_p (XEXP (SET_DEST (PATTERN (insn)), 0),
+ SET_SRC (PATTERN (insn))))
+ ;
#ifdef HAVE_cc0
else if (GET_CODE (SET_DEST (PATTERN (insn))) == CC0