summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrendan <brendan@138bc75d-0d04-0410-961f-82ee72b054a4>1999-10-13 17:28:29 +0000
committerbrendan <brendan@138bc75d-0d04-0410-961f-82ee72b054a4>1999-10-13 17:28:29 +0000
commit422c88923ada00584c7cb8f9bceb160fdee489b4 (patch)
treeb559d43a043dfcd6958e9e6b61b288a3f37ea958
parenta5deb6f6f673dbab2380742300fd418e57741303 (diff)
downloadppe42-gcc-422c88923ada00584c7cb8f9bceb160fdee489b4.tar.gz
ppe42-gcc-422c88923ada00584c7cb8f9bceb160fdee489b4.zip
* regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
climb up the chain of insns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29949 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/regmove.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6a7151a35eb..4567c46c1bc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+1999-10-13 Brendan Kehoe <brendan@cygnus.com>
+
+ * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
+ climb up the chain of insns.
+
Wed Oct 13 10:20:58 1999 Richard Henderson <rth@cygnus.com>
* genrecog.c (write_subroutine): Careful for null trees.
diff --git a/gcc/regmove.c b/gcc/regmove.c
index 98061afa482..c637743e595 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -679,7 +679,7 @@ optimize_reg_copy_3 (insn, dest, src)
|| ! find_reg_note (insn, REG_DEAD, src_reg)
|| REG_N_SETS (src_no) != 1)
return;
- for (p = PREV_INSN (insn); ! reg_set_p (src_reg, p); p = PREV_INSN (p))
+ for (p = PREV_INSN (insn); p && ! reg_set_p (src_reg, p); p = PREV_INSN (p))
{
if (GET_CODE (p) == CODE_LABEL || GET_CODE (p) == JUMP_INSN
|| (GET_CODE (p) == NOTE
@@ -698,6 +698,9 @@ optimize_reg_copy_3 (insn, dest, src)
if (GET_RTX_CLASS (GET_CODE (p)) != 'i')
continue;
}
+ if (! p)
+ return;
+
if (! (set = single_set (p))
|| GET_CODE (SET_SRC (set)) != MEM
|| SET_DEST (set) != src_reg)
OpenPOWER on IntegriCloud