public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* MIPS test failures
@ 1999-03-12  7:54 Mark Mitchell
       [not found] ` < 199903121557.HAA07434@adsl-206-170-148-33.dsl.pacbell.net >
  1999-03-31 23:46 ` Mark Mitchell
  0 siblings, 2 replies; 10+ messages in thread
From: Mark Mitchell @ 1999-03-12  7:54 UTC (permalink / raw)
  To: egcs

Folks --

What's the status of the problem that's causing many MIPS C++ tests to
fail at the moment?  For example, g++.brendan/copy3.C reports an error
involving an undefined `.Lxxx' symbol at link-time on
mips-sgi-irix6.5.  Do we know what the problem is?  Do we know how to
fix it?

I need to fix this problem soon, so I'm happy to look at it if nobody
else is going to, but I'd like to avoid duplicating work.

Thanks!

-- 
Mark Mitchell 			mark@markmitchell.com
Mark Mitchell Consulting	http://www.markmitchell.com

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MIPS test failures
       [not found] ` < 199903121557.HAA07434@adsl-206-170-148-33.dsl.pacbell.net >
@ 1999-03-12 18:20   ` Lee Iverson
       [not found]     ` < 199903130220.SAA16668@Canada.AI.SRI.COM >
  1999-03-31 23:46     ` Lee Iverson
  0 siblings, 2 replies; 10+ messages in thread
From: Lee Iverson @ 1999-03-12 18:20 UTC (permalink / raw)
  To: mark; +Cc: egcs, egcs-patches

In message < 199903121557.HAA07434@adsl-206-170-148-33.dsl.pacbell.net > you writ
e:
> 
> Folks --
> 
> What's the status of the problem that's causing many MIPS C++ tests to
> fail at the moment?  For example, g++.brendan/copy3.C reports an error
> involving an undefined `.Lxxx' symbol at link-time on
> mips-sgi-irix6.5.  Do we know what the problem is?  Do we know how to
> fix it?
> 
> I need to fix this problem soon, so I'm happy to look at it if nobody
> else is going to, but I'd like to avoid duplicating work.

The fix in
    http://egcs.cygnus.com/ml/egcs-patches/1999-03/msg00206.html
solves the problem but seems to be overkill to me.

I managed a good bootstrap on mips-sgi-irix6.3 with the following patches.

-------------------------------------------------------------------------------
Lee Iverson     		SRI International
leei@ai.sri.com			333 Ravenswood Ave., Menlo Park CA 94025
http://www.ai.sri.com/~leei/	(650) 859-3307

1999-03-12  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* jump.c (restore_reg_labels_1): New function.  Searches for
	  label_refs and restores REG_LABEL notes as appropriate.
	  (restore_reg_labels): New function.  Restores any lost
	  REG_LABEL notes to an instruction.
	* reload1.c (reload): Call restore_reg_label to restore REG_LABEL
	  notes which may have been destroyed.	

Index: jump.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/jump.c,v
retrieving revision 1.55
diff -p -u -r1.55 jump.c
--- jump.c	1999/03/10 19:45:18	1.55
+++ jump.c	1999/03/13 02:09:28
@@ -3726,6 +3726,95 @@ mark_jump_label (x, insn, cross_jump)
     }
 }
 
+/* Iterate over all components of X that might contain a LABEL_REF, adding
+   REG_LABEL notes to the INSN if not already there. */
+
+static void
+restore_reg_labels_1 (x, insn)
+     rtx x, insn;
+{
+  register RTX_CODE code = GET_CODE (x);
+  register int i;
+  register char *fmt;
+
+  switch (code)
+    {
+    case PC:
+    case CC0:
+    case REG:
+    case SUBREG:
+    case CONST_INT:
+    case SYMBOL_REF:
+    case CONST_DOUBLE:
+    case CLOBBER:
+    case CALL:
+      /* Is this correct?  Are REG_LABELs never generated for ADDR_VECs? */
+    case ADDR_VEC:
+    case ADDR_DIFF_VEC:
+      return;
+
+    case MEM:
+      /* If this is a constant-pool reference, see if it is a label.  */
+      if (GET_CODE (XEXP (x, 0)) == SYMBOL_REF
+	  && CONSTANT_POOL_ADDRESS_P (XEXP (x, 0)))
+	restore_reg_labels_1 (get_pool_constant (XEXP (x, 0)), insn);
+      break;
+
+    case LABEL_REF:
+      {
+	rtx label = XEXP (x, 0);
+	rtx note;
+
+	if (GET_CODE (label) != CODE_LABEL)
+	  abort ();
+
+	/* Ignore references to labels of containing functions.  */
+	if (LABEL_REF_NONLOCAL_P (x))
+	  break;
+
+	if (GET_CODE (insn) == JUMP_INSN)
+	  ;
+
+	/* Otherwise, add a REG_LABEL note for LABEL unless there already
+	   is one.  */
+	else if (! find_reg_note (insn, REG_LABEL, label))
+	  {
+	    REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL, label,
+						  REG_NOTES (insn));
+	  }
+
+	return;
+      }
+
+    default:
+      break;
+    }
+
+  fmt = GET_RTX_FORMAT (code);
+  for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
+    {
+      if (fmt[i] == 'e')
+	restore_reg_labels_1 (XEXP (x, i), insn);
+      else if (fmt[i] == 'E')
+	{
+	  register int j;
+	  for (j = 0; j < XVECLEN (x, i); j++)
+	    restore_reg_labels_1 (XVECEXP (x, i, j), insn);
+	}
+    }
+}
+
+/* If the REG_LABEL notes may have been deleted from an INSN, then call this
+   to reestablish them. */
+
+void
+restore_reg_labels (insn)
+     rtx insn;
+{
+  if (! INSN_DELETED_P (insn))
+    restore_reg_labels_1 (PATTERN (insn), insn);
+}
+
 /* If all INSN does is set the pc, delete it,
    and delete the insn that set the condition codes for it
    if that's what the previous thing was.  */
Index: reload1.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/reload1.c,v
retrieving revision 1.135
diff -p -u -r1.135 reload1.c
--- reload1.c	1999/03/12 12:39:59	1.135
+++ reload1.c	1999/03/13 02:09:29
@@ -1157,6 +1157,9 @@ reload (first, global, dumpfile)
 	      pnote = &XEXP (*pnote, 1);
 	  }
 
+	/* Restore any REG_LABEL notes which are now missing. */
+	restore_reg_labels (insn);
+
 	/* And simplify (subreg (reg)) if it appears as an operand.  */
 	cleanup_subreg_operands (insn);
       }

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MIPS test failures
       [not found]     ` < 199903130220.SAA16668@Canada.AI.SRI.COM >
@ 1999-03-15  0:30       ` Mark Mitchell
       [not found]         ` < 199903150833.AAA00261@adsl-206-170-148-33.dsl.pacbell.net >
  1999-03-31 23:46         ` Mark Mitchell
  0 siblings, 2 replies; 10+ messages in thread
From: Mark Mitchell @ 1999-03-15  0:30 UTC (permalink / raw)
  To: leei; +Cc: egcs, egcs-patches

Here's another patch, a bit more circumspect than Lee's, which also
fixes the MIPS bootstrap.  I've tested this patch with a 3-stage
bootstrap on mpis-sgi-irix6.5.

Jeff?

-- 
Mark Mitchell 			mark@markmitchell.com
Mark Mitchell Consulting	http://www.markmitchell.com

Mon Mar 15 00:32:30 1999  Mark Mitchell  <mark@markmitchell.com>

	* reload.c (find_reloads): Add a REG_LABEL note if we substitute a
	LABEL_REF for something else.

Index: reload.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/reload.c,v
retrieving revision 1.68
diff -c -p -r1.68 reload.c
*** reload.c	1999/03/05 15:07:56	1.68
--- reload.c	1999/03/15 08:27:21
*************** find_reloads (insn, replace, ind_levels,
*** 3854,3860 ****
         reload_{in,out}_reg when we do these replacements.  */
  
        if (replace)
! 	*recog_operand_loc[i] = substed_operand[i];
        else
  	retval |= (substed_operand[i] != *recog_operand_loc[i]);
      }
--- 3854,3874 ----
         reload_{in,out}_reg when we do these replacements.  */
  
        if (replace)
! 	{
! 	  rtx substitution = substed_operand[i];
! 
! 	  *recog_operand_loc[i] = substitution;
! 
! 	  /* If we're replacing an operand with a LABEL_REF, we need
! 	     to make sure that there's a REG_LABEL note attached to
! 	     this instruction.  */
! 	  if (GET_CODE (insn) != JUMP_INSN
! 	      && GET_CODE (substitution) == LABEL_REF
! 	      && !find_reg_note (insn, REG_LABEL, XEXP (substitution, 0)))
! 	    REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL,
! 						  XEXP (substitution, 0),
! 						  REG_NOTES (insn));
! 	}
        else
  	retval |= (substed_operand[i] != *recog_operand_loc[i]);
      }

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MIPS test failures
       [not found]         ` < 199903150833.AAA00261@adsl-206-170-148-33.dsl.pacbell.net >
@ 1999-03-15  9:19           ` Jeffrey A Law
  1999-03-31 23:46             ` Jeffrey A Law
  0 siblings, 1 reply; 10+ messages in thread
From: Jeffrey A Law @ 1999-03-15  9:19 UTC (permalink / raw)
  To: mark; +Cc: leei, egcs, egcs-patches

  In message < 199903150833.AAA00261@adsl-206-170-148-33.dsl.pacbell.net >you wri
te:
  > 
  > Here's another patch, a bit more circumspect than Lee's, which also
  > fixes the MIPS bootstrap.  I've tested this patch with a 3-stage
  > bootstrap on mpis-sgi-irix6.5.
  > 
  > Jeff?
  > 
  > -- 
  > Mark Mitchell 			mark@markmitchell.com
  > Mark Mitchell Consulting	http://www.markmitchell.com
  > 
  > Mon Mar 15 00:32:30 1999  Mark Mitchell  <mark@markmitchell.com>
  > 
  > 	* reload.c (find_reloads): Add a REG_LABEL note if we substitute a
  > 	LABEL_REF for something else.
I like this one a little better.  It's reload that creates the new LABEL_REFs
and keeping them up-to-date should be pretty easy since the number of ways we
can create a new non-jumping LABEL_REF are pretty limited.

I'd made a quick unsuccessful attempt to fix this on Friday (I noted the same
basic bug crept into 3 of systems I was hacking friday -- hppa, mips & mn103).

I'm going to go ahead and install this change.

Thanks!

jeff

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MIPS test failures
  1999-03-12 18:20   ` Lee Iverson
       [not found]     ` < 199903130220.SAA16668@Canada.AI.SRI.COM >
@ 1999-03-31 23:46     ` Lee Iverson
  1 sibling, 0 replies; 10+ messages in thread
From: Lee Iverson @ 1999-03-31 23:46 UTC (permalink / raw)
  To: mark; +Cc: egcs, egcs-patches

In message < 199903121557.HAA07434@adsl-206-170-148-33.dsl.pacbell.net > you writ
e:
> 
> Folks --
> 
> What's the status of the problem that's causing many MIPS C++ tests to
> fail at the moment?  For example, g++.brendan/copy3.C reports an error
> involving an undefined `.Lxxx' symbol at link-time on
> mips-sgi-irix6.5.  Do we know what the problem is?  Do we know how to
> fix it?
> 
> I need to fix this problem soon, so I'm happy to look at it if nobody
> else is going to, but I'd like to avoid duplicating work.

The fix in
    http://egcs.cygnus.com/ml/egcs-patches/1999-03/msg00206.html
solves the problem but seems to be overkill to me.

I managed a good bootstrap on mips-sgi-irix6.3 with the following patches.

-------------------------------------------------------------------------------
Lee Iverson     		SRI International
leei@ai.sri.com			333 Ravenswood Ave., Menlo Park CA 94025
http://www.ai.sri.com/~leei/	(650) 859-3307

1999-03-12  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* jump.c (restore_reg_labels_1): New function.  Searches for
	  label_refs and restores REG_LABEL notes as appropriate.
	  (restore_reg_labels): New function.  Restores any lost
	  REG_LABEL notes to an instruction.
	* reload1.c (reload): Call restore_reg_label to restore REG_LABEL
	  notes which may have been destroyed.	

Index: jump.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/jump.c,v
retrieving revision 1.55
diff -p -u -r1.55 jump.c
--- jump.c	1999/03/10 19:45:18	1.55
+++ jump.c	1999/03/13 02:09:28
@@ -3726,6 +3726,95 @@ mark_jump_label (x, insn, cross_jump)
     }
 }
 
+/* Iterate over all components of X that might contain a LABEL_REF, adding
+   REG_LABEL notes to the INSN if not already there. */
+
+static void
+restore_reg_labels_1 (x, insn)
+     rtx x, insn;
+{
+  register RTX_CODE code = GET_CODE (x);
+  register int i;
+  register char *fmt;
+
+  switch (code)
+    {
+    case PC:
+    case CC0:
+    case REG:
+    case SUBREG:
+    case CONST_INT:
+    case SYMBOL_REF:
+    case CONST_DOUBLE:
+    case CLOBBER:
+    case CALL:
+      /* Is this correct?  Are REG_LABELs never generated for ADDR_VECs? */
+    case ADDR_VEC:
+    case ADDR_DIFF_VEC:
+      return;
+
+    case MEM:
+      /* If this is a constant-pool reference, see if it is a label.  */
+      if (GET_CODE (XEXP (x, 0)) == SYMBOL_REF
+	  && CONSTANT_POOL_ADDRESS_P (XEXP (x, 0)))
+	restore_reg_labels_1 (get_pool_constant (XEXP (x, 0)), insn);
+      break;
+
+    case LABEL_REF:
+      {
+	rtx label = XEXP (x, 0);
+	rtx note;
+
+	if (GET_CODE (label) != CODE_LABEL)
+	  abort ();
+
+	/* Ignore references to labels of containing functions.  */
+	if (LABEL_REF_NONLOCAL_P (x))
+	  break;
+
+	if (GET_CODE (insn) == JUMP_INSN)
+	  ;
+
+	/* Otherwise, add a REG_LABEL note for LABEL unless there already
+	   is one.  */
+	else if (! find_reg_note (insn, REG_LABEL, label))
+	  {
+	    REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL, label,
+						  REG_NOTES (insn));
+	  }
+
+	return;
+      }
+
+    default:
+      break;
+    }
+
+  fmt = GET_RTX_FORMAT (code);
+  for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
+    {
+      if (fmt[i] == 'e')
+	restore_reg_labels_1 (XEXP (x, i), insn);
+      else if (fmt[i] == 'E')
+	{
+	  register int j;
+	  for (j = 0; j < XVECLEN (x, i); j++)
+	    restore_reg_labels_1 (XVECEXP (x, i, j), insn);
+	}
+    }
+}
+
+/* If the REG_LABEL notes may have been deleted from an INSN, then call this
+   to reestablish them. */
+
+void
+restore_reg_labels (insn)
+     rtx insn;
+{
+  if (! INSN_DELETED_P (insn))
+    restore_reg_labels_1 (PATTERN (insn), insn);
+}
+
 /* If all INSN does is set the pc, delete it,
    and delete the insn that set the condition codes for it
    if that's what the previous thing was.  */
Index: reload1.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/reload1.c,v
retrieving revision 1.135
diff -p -u -r1.135 reload1.c
--- reload1.c	1999/03/12 12:39:59	1.135
+++ reload1.c	1999/03/13 02:09:29
@@ -1157,6 +1157,9 @@ reload (first, global, dumpfile)
 	      pnote = &XEXP (*pnote, 1);
 	  }
 
+	/* Restore any REG_LABEL notes which are now missing. */
+	restore_reg_labels (insn);
+
 	/* And simplify (subreg (reg)) if it appears as an operand.  */
 	cleanup_subreg_operands (insn);
       }

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MIPS test failures
  1999-03-15  0:30       ` Mark Mitchell
       [not found]         ` < 199903150833.AAA00261@adsl-206-170-148-33.dsl.pacbell.net >
@ 1999-03-31 23:46         ` Mark Mitchell
  1 sibling, 0 replies; 10+ messages in thread
From: Mark Mitchell @ 1999-03-31 23:46 UTC (permalink / raw)
  To: leei; +Cc: egcs, egcs-patches

Here's another patch, a bit more circumspect than Lee's, which also
fixes the MIPS bootstrap.  I've tested this patch with a 3-stage
bootstrap on mpis-sgi-irix6.5.

Jeff?

-- 
Mark Mitchell 			mark@markmitchell.com
Mark Mitchell Consulting	http://www.markmitchell.com

Mon Mar 15 00:32:30 1999  Mark Mitchell  <mark@markmitchell.com>

	* reload.c (find_reloads): Add a REG_LABEL note if we substitute a
	LABEL_REF for something else.

Index: reload.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/reload.c,v
retrieving revision 1.68
diff -c -p -r1.68 reload.c
*** reload.c	1999/03/05 15:07:56	1.68
--- reload.c	1999/03/15 08:27:21
*************** find_reloads (insn, replace, ind_levels,
*** 3854,3860 ****
         reload_{in,out}_reg when we do these replacements.  */
  
        if (replace)
! 	*recog_operand_loc[i] = substed_operand[i];
        else
  	retval |= (substed_operand[i] != *recog_operand_loc[i]);
      }
--- 3854,3874 ----
         reload_{in,out}_reg when we do these replacements.  */
  
        if (replace)
! 	{
! 	  rtx substitution = substed_operand[i];
! 
! 	  *recog_operand_loc[i] = substitution;
! 
! 	  /* If we're replacing an operand with a LABEL_REF, we need
! 	     to make sure that there's a REG_LABEL note attached to
! 	     this instruction.  */
! 	  if (GET_CODE (insn) != JUMP_INSN
! 	      && GET_CODE (substitution) == LABEL_REF
! 	      && !find_reg_note (insn, REG_LABEL, XEXP (substitution, 0)))
! 	    REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL,
! 						  XEXP (substitution, 0),
! 						  REG_NOTES (insn));
! 	}
        else
  	retval |= (substed_operand[i] != *recog_operand_loc[i]);
      }


^ permalink raw reply	[flat|nested] 10+ messages in thread

* MIPS test failures
  1999-03-12  7:54 MIPS test failures Mark Mitchell
       [not found] ` < 199903121557.HAA07434@adsl-206-170-148-33.dsl.pacbell.net >
@ 1999-03-31 23:46 ` Mark Mitchell
  1 sibling, 0 replies; 10+ messages in thread
From: Mark Mitchell @ 1999-03-31 23:46 UTC (permalink / raw)
  To: egcs

Folks --

What's the status of the problem that's causing many MIPS C++ tests to
fail at the moment?  For example, g++.brendan/copy3.C reports an error
involving an undefined `.Lxxx' symbol at link-time on
mips-sgi-irix6.5.  Do we know what the problem is?  Do we know how to
fix it?

I need to fix this problem soon, so I'm happy to look at it if nobody
else is going to, but I'd like to avoid duplicating work.

Thanks!

-- 
Mark Mitchell 			mark@markmitchell.com
Mark Mitchell Consulting	http://www.markmitchell.com

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: MIPS test failures
  1999-03-15  9:19           ` Jeffrey A Law
@ 1999-03-31 23:46             ` Jeffrey A Law
  0 siblings, 0 replies; 10+ messages in thread
From: Jeffrey A Law @ 1999-03-31 23:46 UTC (permalink / raw)
  To: mark; +Cc: leei, egcs, egcs-patches

  In message < 199903150833.AAA00261@adsl-206-170-148-33.dsl.pacbell.net >you wri
te:
  > 
  > Here's another patch, a bit more circumspect than Lee's, which also
  > fixes the MIPS bootstrap.  I've tested this patch with a 3-stage
  > bootstrap on mpis-sgi-irix6.5.
  > 
  > Jeff?
  > 
  > -- 
  > Mark Mitchell 			mark@markmitchell.com
  > Mark Mitchell Consulting	http://www.markmitchell.com
  > 
  > Mon Mar 15 00:32:30 1999  Mark Mitchell  <mark@markmitchell.com>
  > 
  > 	* reload.c (find_reloads): Add a REG_LABEL note if we substitute a
  > 	LABEL_REF for something else.
I like this one a little better.  It's reload that creates the new LABEL_REFs
and keeping them up-to-date should be pretty easy since the number of ways we
can create a new non-jumping LABEL_REF are pretty limited.

I'd made a quick unsuccessful attempt to fix this on Friday (I noted the same
basic bug crept into 3 of systems I was hacking friday -- hppa, mips & mn103).

I'm going to go ahead and install this change.

Thanks!

jeff

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: MIPS test failures
  1999-03-15 17:51 Billinghurst, David (RTD)
@ 1999-03-31 23:46 ` Billinghurst, David (RTD)
  0 siblings, 0 replies; 10+ messages in thread
From: Billinghurst, David (RTD) @ 1999-03-31 23:46 UTC (permalink / raw)
  To: 'mark@markmitchell.com'; +Cc: egcs, egcs-patches

Works for me on irix6.2 with patch applied to egcs-19990314

		=== g++ tests ===


Running target unix
FAIL: g++.dg/special/conpr-1.C execution test
FAIL: g++.dg/special/conpr-2.C execution test
FAIL: g++.dg/special/conpr-3.C execution test
FAIL: g++.dg/special/conpr-3.C execution test
XPASS: g++.pt/instantiate6.C (test for excess errors)

		=== g++ Summary ===

# of expected passes		4977
# of unexpected failures	4
# of unexpected successes	1
# of expected failures		84
# of untested testcases		8
/exd4/billingd/obj/egcs-19990314/gcc/testsuite/../xgcc version egcs-2.93.12
19990314 (gcc2 ss-980929 experimental)



> -----Original Message-----
> From:	Mark Mitchell [SMTP:mark@markmitchell.com]
> Sent:	Monday, March 15, 1999 7:34 PM
> To:	leei@ai.sri.com
> Cc:	egcs@egcs.cygnus.com; egcs-patches@egcs.cygnus.com
> Subject:	Re: MIPS test failures
> 
> 
> Here's another patch, a bit more circumspect than Lee's, which also
> fixes the MIPS bootstrap.  I've tested this patch with a 3-stage
> bootstrap on mpis-sgi-irix6.5.
> 
> Jeff?
> 
> -- 
> Mark Mitchell 			mark@markmitchell.com
> Mark Mitchell Consulting	http://www.markmitchell.com
> 
> Mon Mar 15 00:32:30 1999  Mark Mitchell  <mark@markmitchell.com>
> 
> 	* reload.c (find_reloads): Add a REG_LABEL note if we substitute a
> 	LABEL_REF for something else.
> 
> Index: reload.c
> ===================================================================
> RCS file: /egcs/carton/cvsfiles/egcs/gcc/reload.c,v
> retrieving revision 1.68
> diff -c -p -r1.68 reload.c
> *** reload.c	1999/03/05 15:07:56	1.68
> --- reload.c	1999/03/15 08:27:21
> *************** find_reloads (insn, replace, ind_levels,
> *** 3854,3860 ****
>          reload_{in,out}_reg when we do these replacements.  */
>   
>         if (replace)
> ! 	*recog_operand_loc[i] = substed_operand[i];
>         else
>   	retval |= (substed_operand[i] != *recog_operand_loc[i]);
>       }
> --- 3854,3874 ----
>          reload_{in,out}_reg when we do these replacements.  */
>   
>         if (replace)
> ! 	{
> ! 	  rtx substitution = substed_operand[i];
> ! 
> ! 	  *recog_operand_loc[i] = substitution;
> ! 
> ! 	  /* If we're replacing an operand with a LABEL_REF, we need
> ! 	     to make sure that there's a REG_LABEL note attached to
> ! 	     this instruction.  */
> ! 	  if (GET_CODE (insn) != JUMP_INSN
> ! 	      && GET_CODE (substitution) == LABEL_REF
> ! 	      && !find_reg_note (insn, REG_LABEL, XEXP (substitution, 0)))
> ! 	    REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL,
> ! 						  XEXP (substitution, 0),
> ! 						  REG_NOTES (insn));
> ! 	}
>         else
>   	retval |= (substed_operand[i] != *recog_operand_loc[i]);
>       }

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: MIPS test failures
@ 1999-03-15 17:51 Billinghurst, David (RTD)
  1999-03-31 23:46 ` Billinghurst, David (RTD)
  0 siblings, 1 reply; 10+ messages in thread
From: Billinghurst, David (RTD) @ 1999-03-15 17:51 UTC (permalink / raw)
  To: 'mark@markmitchell.com'; +Cc: egcs, egcs-patches

Works for me on irix6.2 with patch applied to egcs-19990314

		=== g++ tests ===


Running target unix
FAIL: g++.dg/special/conpr-1.C execution test
FAIL: g++.dg/special/conpr-2.C execution test
FAIL: g++.dg/special/conpr-3.C execution test
FAIL: g++.dg/special/conpr-3.C execution test
XPASS: g++.pt/instantiate6.C (test for excess errors)

		=== g++ Summary ===

# of expected passes		4977
# of unexpected failures	4
# of unexpected successes	1
# of expected failures		84
# of untested testcases		8
/exd4/billingd/obj/egcs-19990314/gcc/testsuite/../xgcc version egcs-2.93.12
19990314 (gcc2 ss-980929 experimental)



> -----Original Message-----
> From:	Mark Mitchell [SMTP:mark@markmitchell.com]
> Sent:	Monday, March 15, 1999 7:34 PM
> To:	leei@ai.sri.com
> Cc:	egcs@egcs.cygnus.com; egcs-patches@egcs.cygnus.com
> Subject:	Re: MIPS test failures
> 
> 
> Here's another patch, a bit more circumspect than Lee's, which also
> fixes the MIPS bootstrap.  I've tested this patch with a 3-stage
> bootstrap on mpis-sgi-irix6.5.
> 
> Jeff?
> 
> -- 
> Mark Mitchell 			mark@markmitchell.com
> Mark Mitchell Consulting	http://www.markmitchell.com
> 
> Mon Mar 15 00:32:30 1999  Mark Mitchell  <mark@markmitchell.com>
> 
> 	* reload.c (find_reloads): Add a REG_LABEL note if we substitute a
> 	LABEL_REF for something else.
> 
> Index: reload.c
> ===================================================================
> RCS file: /egcs/carton/cvsfiles/egcs/gcc/reload.c,v
> retrieving revision 1.68
> diff -c -p -r1.68 reload.c
> *** reload.c	1999/03/05 15:07:56	1.68
> --- reload.c	1999/03/15 08:27:21
> *************** find_reloads (insn, replace, ind_levels,
> *** 3854,3860 ****
>          reload_{in,out}_reg when we do these replacements.  */
>   
>         if (replace)
> ! 	*recog_operand_loc[i] = substed_operand[i];
>         else
>   	retval |= (substed_operand[i] != *recog_operand_loc[i]);
>       }
> --- 3854,3874 ----
>          reload_{in,out}_reg when we do these replacements.  */
>   
>         if (replace)
> ! 	{
> ! 	  rtx substitution = substed_operand[i];
> ! 
> ! 	  *recog_operand_loc[i] = substitution;
> ! 
> ! 	  /* If we're replacing an operand with a LABEL_REF, we need
> ! 	     to make sure that there's a REG_LABEL note attached to
> ! 	     this instruction.  */
> ! 	  if (GET_CODE (insn) != JUMP_INSN
> ! 	      && GET_CODE (substitution) == LABEL_REF
> ! 	      && !find_reg_note (insn, REG_LABEL, XEXP (substitution, 0)))
> ! 	    REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL,
> ! 						  XEXP (substitution, 0),
> ! 						  REG_NOTES (insn));
> ! 	}
>         else
>   	retval |= (substed_operand[i] != *recog_operand_loc[i]);
>       }

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~1999-03-31 23:46 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-03-12  7:54 MIPS test failures Mark Mitchell
     [not found] ` < 199903121557.HAA07434@adsl-206-170-148-33.dsl.pacbell.net >
1999-03-12 18:20   ` Lee Iverson
     [not found]     ` < 199903130220.SAA16668@Canada.AI.SRI.COM >
1999-03-15  0:30       ` Mark Mitchell
     [not found]         ` < 199903150833.AAA00261@adsl-206-170-148-33.dsl.pacbell.net >
1999-03-15  9:19           ` Jeffrey A Law
1999-03-31 23:46             ` Jeffrey A Law
1999-03-31 23:46         ` Mark Mitchell
1999-03-31 23:46     ` Lee Iverson
1999-03-31 23:46 ` Mark Mitchell
1999-03-15 17:51 Billinghurst, David (RTD)
1999-03-31 23:46 ` Billinghurst, David (RTD)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).