aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1998-07-06 22:55:30 +0000
committerJeff Law <law@gcc.gnu.org>1998-07-06 16:55:30 -0600
commitb294ca3876dd7469827b0fcf4b542c79565c3cee (patch)
tree024c4934e31bcd38ce80c719c19ffdf057ebb15b
parent6186ed06d2f4294816b5514bb01383d7dc2b2045 (diff)
downloadgcc-b294ca3876dd7469827b0fcf4b542c79565c3cee.zip
gcc-b294ca3876dd7469827b0fcf4b542c79565c3cee.tar.gz
gcc-b294ca3876dd7469827b0fcf4b542c79565c3cee.tar.bz2
reload1.c (delete_dead_insn): Don't delete feeding insn if that insn has side effects.
* reload1.c (delete_dead_insn): Don't delete feeding insn if that insn has side effects. From-SVN: r20975
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/reload1.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b47a532..bc81171 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -13,6 +13,9 @@ Mon Jul 6 22:50:48 1998 Jason Merrill <jason@yorick.cygnus.com>
Mon Jul 6 22:47:55 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
+ * reload1.c (delete_dead_insn): Don't delete feeding insn
+ if that insn has side effects.
+
* flow.c (find_auto_inc): Clear UNCHANGING bit of register that is
changed.
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 73fd5d9..456abb0 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -2449,7 +2449,8 @@ delete_dead_insn (insn)
if (prev && GET_CODE (PATTERN (prev)) == SET
&& (prev_dest = SET_DEST (PATTERN (prev)), GET_CODE (prev_dest) == REG)
&& reg_mentioned_p (prev_dest, PATTERN (insn))
- && find_regno_note (insn, REG_DEAD, REGNO (prev_dest)))
+ && find_regno_note (insn, REG_DEAD, REGNO (prev_dest))
+ && ! side_effects_p (SET_SRC (PATTERN (prev))))
delete_dead_insn (prev);
PUT_CODE (insn, NOTE);