From 01a5c0abdf290517ccca141e9a3e7481dec87324 Mon Sep 17 00:00:00 2001
From: Alexandre Oliva <aoliva@redhat.com>
Date: Wed, 4 May 2011 03:37:40 +0000
Subject: [PATCH] re PR debug/47994 (-fcompare-debug failure with -O2
 -fpeel-loops -fno-rerun-cse-after-loop -fno-tree-loop-optimize -fno-web)

PR debug/47994
PR debug/47919
* combine.c (try_combine): Skip debug insns at m_split tests.

From-SVN: r173351
---
 gcc/ChangeLog | 6 ++++++
 gcc/combine.c | 6 +++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 78b593f695cd..ed3031f56bac 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
+
+	PR debug/47994
+	PR debug/47919
+	* combine.c (try_combine): Skip debug insns at m_split tests.
+
 2011-04-26  Mark Wielaard  <mjw@redhat.com>
 
 	PR42288
diff --git a/gcc/combine.c b/gcc/combine.c
index 7bdbed4144c4..0e6d65f88094 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -3457,7 +3457,7 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p,
 	    newpat = m_split;
 	}
       else if (m_split && NEXT_INSN (NEXT_INSN (m_split)) == NULL_RTX
-	       && (next_real_insn (i2) == i3
+	       && (next_nonnote_nondebug_insn (i2) == i3
 		   || ! use_crosses_set_p (PATTERN (m_split), DF_INSN_LUID (i2))))
 	{
 	  rtx i2set, i3set;
@@ -3474,7 +3474,7 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p,
 	     is used between I2 and I3, we also can't use these insns.  */
 
 	  if (i2_code_number >= 0 && i2set && i3set
-	      && (next_real_insn (i2) == i3
+	      && (next_nonnote_nondebug_insn (i2) == i3
 		  || ! reg_used_between_p (SET_DEST (i2set), i2, i3)))
 	    insn_code_number = recog_for_combine (&newi3pat, i3,
 						  &new_i3_notes);
@@ -3522,7 +3522,7 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p,
 	      || GET_MODE (*split) == VOIDmode
 	      || can_change_dest_mode (i2dest, added_sets_2,
 				       GET_MODE (*split)))
-	  && (next_real_insn (i2) == i3
+	  && (next_nonnote_nondebug_insn (i2) == i3
 	      || ! use_crosses_set_p (*split, DF_INSN_LUID (i2)))
 	  /* We can't overwrite I2DEST if its value is still used by
 	     NEWPAT.  */
-- 
GitLab