diff mbox

Add refers_to_regno_p overload to simplify callers

Message ID 1419199374.8915.73.camel@yam-132-YW-E178-FTW
State New
Headers show

Commit Message

Oleg Endo Dec. 21, 2014, 10:02 p.m. UTC
Hi,

It seems that quite some callers of refers_to_regno_p are interested in
testing a single register number only.  The caller code can be
simplified by adding an overload for refers_to_regno_p.  This is what
the patch does.  No functional changes.  Tested with 'make all-gcc' on
sh-elf cross config and bootstrapped on i686-pc-linux-gnu.
OK for trunk?

Cheers,
Oleg

gcc/ChangeLog:
	* rtlanal.c (refers_to_regno_p): Change return value from int to
	bool.
	* rtl.h (refers_to_regno_p): Add overload.
	* cse.c: Use it.
	* bt-load.c: Likewise.
	* combine.c: Likewise.
	* df-scan.c: Likewise.
	* sched-deps.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/rs6000/spe.md: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/arc/arc.md: Likewise.
	* config/arc/arc.c: Likewise.
	* config/sh/sh.md: Likewise.
	* config/sh/sh.c: Likewise.
	* config/frv/frv.c: Likewise.

Comments

Oleg Endo Jan. 3, 2015, 12:18 p.m. UTC | #1
https://gcc.gnu.org/ml/gcc-patches/2014-12/msg01730.html

On Sun, 2014-12-21 at 23:02 +0100, Oleg Endo wrote:
> Hi,
> 
> It seems that quite some callers of refers_to_regno_p are interested in
> testing a single register number only.  The caller code can be
> simplified by adding an overload for refers_to_regno_p.  This is what
> the patch does.  No functional changes.  Tested with 'make all-gcc' on
> sh-elf cross config and bootstrapped on i686-pc-linux-gnu.
> OK for trunk?
> 
> Cheers,
> Oleg
> 
> gcc/ChangeLog:
> 	* rtlanal.c (refers_to_regno_p): Change return value from int to
> 	bool.
> 	* rtl.h (refers_to_regno_p): Add overload.
> 	* cse.c: Use it.
> 	* bt-load.c: Likewise.
> 	* combine.c: Likewise.
> 	* df-scan.c: Likewise.
> 	* sched-deps.c: Likewise.
> 	* config/s390/s390.c: Likewise.
> 	* config/m32r/m32r.c: Likewise.
> 	* config/rs6000/spe.md: Likewise.
> 	* config/rs6000/rs6000.c: Likewise.
> 	* config/pa/pa.c: Likewise.
> 	* config/stormy16/stormy16.c: Likewise.
> 	* config/cris/cris.c: Likewise.
> 	* config/arc/arc.md: Likewise.
> 	* config/arc/arc.c: Likewise.
> 	* config/sh/sh.md: Likewise.
> 	* config/sh/sh.c: Likewise.
> 	* config/frv/frv.c: Likewise.
Jeff Law Jan. 5, 2015, 7:48 p.m. UTC | #2
On 01/03/15 05:18, Oleg Endo wrote:
> https://gcc.gnu.org/ml/gcc-patches/2014-12/msg01730.html
>
> On Sun, 2014-12-21 at 23:02 +0100, Oleg Endo wrote:
>> Hi,
>>
>> It seems that quite some callers of refers_to_regno_p are interested in
>> testing a single register number only.  The caller code can be
>> simplified by adding an overload for refers_to_regno_p.  This is what
>> the patch does.  No functional changes.  Tested with 'make all-gcc' on
>> sh-elf cross config and bootstrapped on i686-pc-linux-gnu.
>> OK for trunk?
>>
>> Cheers,
>> Oleg
>>
>> gcc/ChangeLog:
>> 	* rtlanal.c (refers_to_regno_p): Change return value from int to
>> 	bool.
>> 	* rtl.h (refers_to_regno_p): Add overload.
>> 	* cse.c: Use it.
>> 	* bt-load.c: Likewise.
>> 	* combine.c: Likewise.
>> 	* df-scan.c: Likewise.
>> 	* sched-deps.c: Likewise.
>> 	* config/s390/s390.c: Likewise.
>> 	* config/m32r/m32r.c: Likewise.
>> 	* config/rs6000/spe.md: Likewise.
>> 	* config/rs6000/rs6000.c: Likewise.
>> 	* config/pa/pa.c: Likewise.
>> 	* config/stormy16/stormy16.c: Likewise.
>> 	* config/cris/cris.c: Likewise.
>> 	* config/arc/arc.md: Likewise.
>> 	* config/arc/arc.c: Likewise.
>> 	* config/sh/sh.md: Likewise.
>> 	* config/sh/sh.c: Likewise.
>> 	* config/frv/frv.c: Likewise.
OK for the trunk.  Though I think further patches of this nature should 
probably wait until stage1 reopens.

jeff
Oleg Endo Jan. 5, 2015, 10:06 p.m. UTC | #3
On Mon, 2015-01-05 at 12:48 -0700, Jeff Law wrote:
> On 01/03/15 05:18, Oleg Endo wrote:
> > https://gcc.gnu.org/ml/gcc-patches/2014-12/msg01730.html
> >
> > On Sun, 2014-12-21 at 23:02 +0100, Oleg Endo wrote:
> >> Hi,
> >>
> >> It seems that quite some callers of refers_to_regno_p are interested in
> >> testing a single register number only.  The caller code can be
> >> simplified by adding an overload for refers_to_regno_p.  This is what
> >> the patch does.  No functional changes.  Tested with 'make all-gcc' on
> >> sh-elf cross config and bootstrapped on i686-pc-linux-gnu.
> >> OK for trunk?
> >>
> >> Cheers,
> >> Oleg
> >>
> >> gcc/ChangeLog:
> >> 	* rtlanal.c (refers_to_regno_p): Change return value from int to
> >> 	bool.
> >> 	* rtl.h (refers_to_regno_p): Add overload.
> >> 	* cse.c: Use it.
> >> 	* bt-load.c: Likewise.
> >> 	* combine.c: Likewise.
> >> 	* df-scan.c: Likewise.
> >> 	* sched-deps.c: Likewise.
> >> 	* config/s390/s390.c: Likewise.
> >> 	* config/m32r/m32r.c: Likewise.
> >> 	* config/rs6000/spe.md: Likewise.
> >> 	* config/rs6000/rs6000.c: Likewise.
> >> 	* config/pa/pa.c: Likewise.
> >> 	* config/stormy16/stormy16.c: Likewise.
> >> 	* config/cris/cris.c: Likewise.
> >> 	* config/arc/arc.md: Likewise.
> >> 	* config/arc/arc.c: Likewise.
> >> 	* config/sh/sh.md: Likewise.
> >> 	* config/sh/sh.c: Likewise.
> >> 	* config/frv/frv.c: Likewise.
> OK for the trunk.  

Thanks, committed as r219203.

> Though I think further patches of this nature should 
> probably wait until stage1 reopens.

Also for non-functional stuff like changing more return values / args
from int to bool where it's obvious?

Cheers,
Oleg
Jeff Law Jan. 9, 2015, 5:23 a.m. UTC | #4
On 01/05/15 15:06, Oleg Endo wrote:
>
>> Though I think further patches of this nature should
>> probably wait until stage1 reopens.
>
> Also for non-functional stuff like changing more return values / args
> from int to bool where it's obvious?
Yea, we're supposed to be locking things down in preparation for a 
release.  While I like cleaning up this kind of thing, the priority for 
the project is the upcoming release.

Others may have differing opinions here.  So I'm not going to object if 
someone else wants to approve such changes.  As for myself, I'll just 
queue them up for review once gcc-6 development opens.

jeff
diff mbox

Patch

Index: gcc/cse.c
===================================================================
--- gcc/cse.c	(revision 218988)
+++ gcc/cse.c	(working copy)
@@ -1982,8 +1982,7 @@ 
     for (p = table[i]; p; p = next)
       {
 	next = p->next_same_hash;
-	if (!REG_P (p->exp)
-	    && refers_to_regno_p (regno, regno + 1, p->exp, (rtx *) 0))
+	if (!REG_P (p->exp) && refers_to_regno_p (regno, p->exp))
 	  remove_from_table (p, i);
       }
 }
@@ -2011,7 +2010,7 @@ 
 		|| (((SUBREG_BYTE (exp)
 		      + (GET_MODE_SIZE (GET_MODE (exp)) - 1)) >= offset)
 		    && SUBREG_BYTE (exp) <= end))
-	    && refers_to_regno_p (regno, regno + 1, p->exp, (rtx *) 0))
+	    && refers_to_regno_p (regno, p->exp))
 	  remove_from_table (p, i);
       }
 }
Index: gcc/bt-load.c
===================================================================
--- gcc/bt-load.c	(revision 218988)
+++ gcc/bt-load.c	(working copy)
@@ -533,8 +533,7 @@ 
 			  int reg;
 			  for (reg = first_btr; reg <= last_btr; reg++)
 			    if (TEST_HARD_REG_BIT (all_btrs, reg)
-				&& refers_to_regno_p (reg, reg + 1, user->insn,
-						      NULL))
+				&& refers_to_regno_p (reg, user->insn))
 			      {
 				note_other_use_this_block (reg,
 							   info.users_this_bb);
@@ -597,7 +596,7 @@ 
 	  int regno;
 
 	  for (regno = first_btr; regno <= last_btr; regno++)
-	    if (refers_to_regno_p (regno, regno+1, insn, NULL))
+	    if (refers_to_regno_p (regno, insn))
 	      SET_HARD_REG_BIT (btrs_live_at_end[i], regno);
 	}
 
@@ -710,8 +709,7 @@ 
 		      bitmap_clear (reaching_defs_of_reg);
 		      for (reg = first_btr; reg <= last_btr; reg++)
 			if (TEST_HARD_REG_BIT (all_btrs, reg)
-			    && refers_to_regno_p (reg, reg + 1, user->insn,
-						  NULL))
+			    && refers_to_regno_p (reg, user->insn))
 			  bitmap_or_and (reaching_defs_of_reg,
 			    reaching_defs_of_reg,
 			    reaching_defs,
Index: gcc/combine.c
===================================================================
--- gcc/combine.c	(revision 218988)
+++ gcc/combine.c	(working copy)
@@ -13815,7 +13815,7 @@ 
 		  unsigned int i;
 
 		  for (i = regno; i < endregno; i++)
-		    if ((! refers_to_regno_p (i, i + 1, PATTERN (place), 0)
+		    if ((! refers_to_regno_p (i, PATTERN (place))
 			 && ! find_regno_fusage (place, USE, i))
 			|| dead_or_set_regno_p (place, i))
 		      {
@@ -13845,8 +13845,7 @@ 
 						NULL, NULL_RTX, NULL_RTX,
 						NULL_RTX);
 			    }
-			  else if (! refers_to_regno_p (i, i + 1,
-							PATTERN (place), 0)
+			  else if (! refers_to_regno_p (i, PATTERN (place))
 				   && ! find_regno_fusage (place, USE, i))
 			    for (tem_insn = PREV_INSN (place); ;
 				 tem_insn = PREV_INSN (tem_insn))
Index: gcc/rtl.h
===================================================================
--- gcc/rtl.h	(revision 218988)
+++ gcc/rtl.h	(working copy)
@@ -2837,7 +2837,7 @@ 
 extern int multiple_sets (const_rtx);
 extern int set_noop_p (const_rtx);
 extern int noop_move_p (const_rtx);
-extern int refers_to_regno_p (unsigned int, unsigned int, const_rtx, rtx *);
+extern bool refers_to_regno_p (unsigned int, unsigned int, const_rtx, rtx *);
 extern int reg_overlap_mentioned_p (const_rtx, const_rtx);
 extern const_rtx set_of (const_rtx, const_rtx);
 extern void record_hard_reg_sets (rtx, const_rtx, void *);
@@ -2885,6 +2885,13 @@ 
 extern int computed_jump_p (const_rtx);
 extern bool tls_referenced_p (const_rtx);
 
+/* Overload for refers_to_regno_p for checking a single register.  */
+inline bool
+refers_to_regno_p (unsigned int regnum, const_rtx x, rtx* loc = NULL)
+{
+  return refers_to_regno_p (regnum, regnum + 1, x, loc);
+}
+
 /* Callback for for_each_inc_dec, to process the autoinc operation OP
    within MEM that sets DEST to SRC + SRCOFF, or SRC if SRCOFF is
    NULL.  The callback is passed the same opaque ARG passed to
Index: gcc/rtlanal.c
===================================================================
--- gcc/rtlanal.c	(revision 218988)
+++ gcc/rtlanal.c	(working copy)
@@ -1402,7 +1402,7 @@ 
    References contained within the substructure at LOC do not count.
    LOC may be zero, meaning don't ignore anything.  */
 
-int
+bool
 refers_to_regno_p (unsigned int regno, unsigned int endregno, const_rtx x,
 		   rtx *loc)
 {
@@ -1415,7 +1415,7 @@ 
   /* The contents of a REG_NONNEG note is always zero, so we must come here
      upon repeat in case the last REG_NOTE is a REG_NONNEG note.  */
   if (x == 0)
-    return 0;
+    return false;
 
   code = GET_CODE (x);
 
@@ -1433,7 +1433,7 @@ 
 #endif
 	   || x_regno == FRAME_POINTER_REGNUM)
 	  && regno >= FIRST_VIRTUAL_REGISTER && regno <= LAST_VIRTUAL_REGISTER)
-	return 1;
+	return true;
 
       return endregno > x_regno && regno < END_REGNO (x);
 
@@ -1466,10 +1466,10 @@ 
 				     SUBREG_REG (SET_DEST (x)), loc))
 	      || (!REG_P (SET_DEST (x))
 		  && refers_to_regno_p (regno, endregno, SET_DEST (x), loc))))
-	return 1;
+	return true;
 
       if (code == CLOBBER || loc == &SET_SRC (x))
-	return 0;
+	return false;
       x = SET_SRC (x);
       goto repeat;
 
@@ -1491,7 +1491,7 @@ 
 	    }
 	  else
 	    if (refers_to_regno_p (regno, endregno, XEXP (x, i), loc))
-	      return 1;
+	      return true;
 	}
       else if (fmt[i] == 'E')
 	{
@@ -1499,10 +1499,10 @@ 
 	  for (j = XVECLEN (x, i) - 1; j >= 0; j--)
 	    if (loc != &XVECEXP (x, i, j)
 		&& refers_to_regno_p (regno, endregno, XVECEXP (x, i, j), loc))
-	      return 1;
+	      return true;
 	}
     }
-  return 0;
+  return false;
 }
 
 /* Nonzero if modifying X will affect IN.  If X is a register or a SUBREG,
Index: gcc/config/s390/s390.c
===================================================================
--- gcc/config/s390/s390.c	(revision 218988)
+++ gcc/config/s390/s390.c	(working copy)
@@ -5736,15 +5736,13 @@ 
 
   if (code == MEM)
     {
-      if (refers_to_regno_p (regno, regno+1,
-			     XEXP (x, 0), 0))
+      if (refers_to_regno_p (regno, XEXP (x, 0)))
 	return true;
     }
   else if (code == SET
 	   && GET_CODE (SET_DEST (x)) == PC)
     {
-      if (refers_to_regno_p (regno, regno+1,
-			     SET_SRC (x), 0))
+      if (refers_to_regno_p (regno, SET_SRC (x)))
 	return true;
     }
 
@@ -5795,7 +5793,7 @@ 
 		  pat = XVECEXP (pat, 0, 0);
 		}
 	      gcc_assert (GET_CODE (pat) == SET);
-	      return refers_to_regno_p (regno, regno+1, SET_SRC (pat), 0);
+	      return refers_to_regno_p (regno, SET_SRC (pat));
 	    }
 	  else if (get_attr_atype (insn) == ATYPE_AGEN)
 	    return reg_used_in_mem_p (regno, PATTERN (insn));
Index: gcc/config/m32r/m32r.c
===================================================================
--- gcc/config/m32r/m32r.c	(revision 218988)
+++ gcc/config/m32r/m32r.c	(working copy)
@@ -1096,8 +1096,7 @@ 
 	{
 	  /* If the high-address word is used in the address, we must load it
 	     last.  Otherwise, load it first.  */
-	  int reverse
-	    = (refers_to_regno_p (dregno, dregno + 1, XEXP (src, 0), 0) != 0);
+	  int reverse = refers_to_regno_p (dregno, XEXP (src, 0));
 
 	  /* We used to optimize loads from single registers as
 
Index: gcc/config/rs6000/spe.md
===================================================================
--- gcc/config/rs6000/spe.md	(revision 218988)
+++ gcc/config/rs6000/spe.md	(working copy)
@@ -2421,8 +2421,7 @@ 
 	it last.  Otherwise, load it first.  Note that we cannot have
 	auto-increment in that case since the address register is
 	known to be dead.  */
-      if (refers_to_regno_p (REGNO (operands[0]), REGNO (operands[0]) + 1,
-			     operands[1], 0))
+      if (refers_to_regno_p (REGNO (operands[0]), operands[1]))
 	{
 	  if (WORDS_BIG_ENDIAN)
 	    return \"lwz %L0,%L1\;lwz %0,%1\";
@@ -2465,8 +2464,7 @@ 
 	  else
 	    return \"evldd%X1 %Y0,%y1\;evmergehi %Z0,%Y0,%Y0\";
 	}
-      if (refers_to_regno_p (REGNO (operands[0]), REGNO (operands[0]) + 1,
-			     operands[1], 0))
+      if (refers_to_regno_p (REGNO (operands[0]), operands[1]))
 	{
 	  if (WORDS_BIG_ENDIAN)
 	    return \"lwz %Z0,%L1\;lwz %Y0,%1\";
Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c	(revision 218988)
+++ gcc/config/rs6000/rs6000.c	(working copy)
@@ -16087,8 +16087,7 @@ 
     return "lwz %2,0(%1)";
 
   for (i = 0; i < words; i++)
-    if (refers_to_regno_p (REGNO (operands[2]) + i,
-			   REGNO (operands[2]) + i + 1, operands[1], 0))
+    if (refers_to_regno_p (REGNO (operands[2]) + i, operands[1]))
       {
 	if (i == words-1)
 	  {
Index: gcc/config/pa/pa.c
===================================================================
--- gcc/config/pa/pa.c	(revision 218988)
+++ gcc/config/pa/pa.c	(working copy)
@@ -2649,8 +2649,7 @@ 
      Handle mem -> register case first.  */
   if (optype0 == REGOP
       && (optype1 == MEMOP || optype1 == OFFSOP)
-      && refers_to_regno_p (REGNO (operands[0]), REGNO (operands[0]) + 1,
-			    operands[1], 0))
+      && refers_to_regno_p (REGNO (operands[0]), operands[1]))
     {
       /* Do the late half first.  */
       if (addreg1)
Index: gcc/config/stormy16/stormy16.c
===================================================================
--- gcc/config/stormy16/stormy16.c	(revision 218988)
+++ gcc/config/stormy16/stormy16.c	(working copy)
@@ -815,7 +815,7 @@ 
       gcc_assert (refers_to_regno_p (regno, regno + num_words,
 				     mem_operand, 0));
 
-      if (refers_to_regno_p (regno, regno + 1, mem_operand, 0))
+      if (refers_to_regno_p (regno, mem_operand))
 	direction = -1;
       else if (refers_to_regno_p (regno + num_words - 1, regno + num_words,
 				  mem_operand, 0))
Index: gcc/config/cris/cris.c
===================================================================
--- gcc/config/cris/cris.c	(revision 218988)
+++ gcc/config/cris/cris.c	(working copy)
@@ -2936,8 +2936,7 @@ 
 	  /* If the high-address word is used in the address, we must load it
 	     last.  Otherwise, load it first.  */
 	  rtx addr = XEXP (src, 0);
-	  int reverse
-	    = (refers_to_regno_p (dregno, dregno + 1, addr, NULL) != 0);
+	  int reverse = (refers_to_regno_p (dregno, addr) != 0);
 
 	  /* The original code implies that we can't do
 	     move.x [rN+],rM  move.x [rN],rM+1
Index: gcc/config/arc/arc.md
===================================================================
--- gcc/config/arc/arc.md	(revision 218988)
+++ gcc/config/arc/arc.md	(working copy)
@@ -952,8 +952,7 @@ 
 	 last.  Otherwise, load it first.  Note that we cannot have
 	 auto-increment in that case since the address register is known to be
 	 dead.  */
-      if (refers_to_regno_p (REGNO (operands[0]), REGNO (operands[0]) + 1,
-			     operands [1], 0))
+      if (refers_to_regno_p (REGNO (operands[0]), operands[1]))
 	return \"ld%V1 %R0,%R1\;ld%V1 %0,%1\";
       else switch (GET_CODE (XEXP(operands[1], 0)))
 	{
Index: gcc/config/arc/arc.c
===================================================================
--- gcc/config/arc/arc.c	(revision 218988)
+++ gcc/config/arc/arc.c	(working copy)
@@ -9059,7 +9059,7 @@ 
   int i, j;
   rtx tem;
 
-  if (REG_P (x) && refers_to_regno_p (regno, regno+1, x, (rtx *) 0))
+  if (REG_P (x) && refers_to_regno_p (regno, x))
     return x;
 
   fmt = GET_RTX_FORMAT (GET_CODE (x));
Index: gcc/config/sh/sh.md
===================================================================
--- gcc/config/sh/sh.md	(revision 218988)
+++ gcc/config/sh/sh.md	(working copy)
@@ -7247,8 +7247,7 @@ 
       gcc_unreachable ();
     }
 
-  if (regno == -1
-      || ! refers_to_regno_p (regno, regno + 1, operands[1], 0))
+  if (regno == -1 || ! refers_to_regno_p (regno, operands[1]))
     {
       operands[2] = operand_subword (operands[0], 0, 0, DImode);
       operands[3] = operand_subword (operands[1], 0, 0, DImode);
@@ -7781,8 +7780,7 @@ 
 	  alter_subreg (&word0, true);
 	  word1 = gen_rtx_SUBREG (SImode, regop, 4);
 	  alter_subreg (&word1, true);
-	  if (store_p || ! refers_to_regno_p (REGNO (word0),
-					      REGNO (word0) + 1, addr, 0))
+	  if (store_p || ! refers_to_regno_p (REGNO (word0), addr))
 	    {
 	      emit_insn (store_p
 			 ? gen_movsi_ie (mem, word0)
@@ -8061,8 +8059,7 @@ 
       gcc_unreachable ();
     }
 
-  if (regno == -1
-      || ! refers_to_regno_p (regno, regno + 1, operands[1], 0))
+  if (regno == -1 || ! refers_to_regno_p (regno, operands[1]))
     {
       operands[2] = operand_subword (operands[0], 0, 0, DFmode);
       operands[3] = operand_subword (operands[1], 0, 0, DFmode);
Index: gcc/config/sh/sh.c
===================================================================
--- gcc/config/sh/sh.c	(revision 218988)
+++ gcc/config/sh/sh.c	(working copy)
@@ -1773,7 +1773,7 @@ 
 	 reload will fail to find a spill register for rX, since r0 is already
 	 being used for the source.  */
       else if (TARGET_SH1
-	       && refers_to_regno_p (R0_REG, R0_REG + 1, operands[1], (rtx *)0)
+	       && refers_to_regno_p (R0_REG, operands[1])
 	       && MEM_P (operands[0])
 	       && GET_CODE (XEXP (operands[0], 0)) == PLUS
 	       && REG_P (XEXP (XEXP (operands[0], 0), 1)))
@@ -7808,8 +7808,7 @@ 
 		{
 		  offset_in_r0 = -1;
 		  sp_in_r0 = 0;
-		  gcc_assert (!refers_to_regno_p
-			      (R0_REG, R0_REG+1, mem_rtx, (rtx *) 0));
+		  gcc_assert (!refers_to_regno_p (R0_REG, mem_rtx));
 		}
 
 	      if (*++tmp_pnt <= 0)
Index: gcc/config/frv/frv.c
===================================================================
--- gcc/config/frv/frv.c	(revision 218988)
+++ gcc/config/frv/frv.c	(working copy)
@@ -5035,7 +5035,7 @@ 
      of the registers could affect the value of ADDRESS, so we must
      be careful which order we do them in.  */
   if (GET_CODE (address) == PRE_MODIFY
-      || ! refers_to_regno_p (regno, regno + 1, address, NULL))
+      || ! refers_to_regno_p (regno, address))
     {
       /* It is safe to load the lower-numbered register first.  */
       emit_move_insn (dest1, change_address (source, SImode, NULL));
Index: gcc/df-scan.c
===================================================================
--- gcc/df-scan.c	(revision 218988)
+++ gcc/df-scan.c	(working copy)
@@ -3173,8 +3173,7 @@ 
 	       && !TEST_HARD_REG_BIT (defs_generated, i)
 	       && (!is_sibling_call
 		   || !bitmap_bit_p (df->exit_block_uses, i)
-		   || refers_to_regno_p (i, i+1,
-				         crtl->return_rtx, NULL)))
+		   || refers_to_regno_p (i, crtl->return_rtx)))
 	  df_ref_record (DF_REF_BASE, collection_rec, regno_reg_rtx[i],
 			 NULL, bb, insn_info, DF_REF_REG_DEF,
 			 DF_REF_MAY_CLOBBER | flags);
Index: gcc/sched-deps.c
===================================================================
--- gcc/sched-deps.c	(revision 218988)
+++ gcc/sched-deps.c	(working copy)
@@ -3174,7 +3174,7 @@ 
 		{
 		  rtx other = XEXP (list, 0);
 		  if (INSN_CACHED_COND (other) != const_true_rtx
-		      && refers_to_regno_p (i, i + 1, INSN_CACHED_COND (other), NULL))
+		      && refers_to_regno_p (i, INSN_CACHED_COND (other)))
 		    INSN_CACHED_COND (other) = const_true_rtx;
 		}
 	    }