2 new, with your patch on 2002-01-10T20:57:36Z.

Jan Hubicka jh@suse.cz
Fri Jan 11 04:21:00 GMT 2002


> 
> > The new failures are:
> > native gcc.sum gcc.c-torture/execute/920302-1.c
> > native gcc.sum gcc.c-torture/execute/comp-goto-1.c
> 
> Hi Jan,
> 
> I'm not completely sure, but I bet this is your recent cfgcleanup
> patch.  Could you look at it?
It does not apperas to be realted to cfgcleanup.  The purpose of failure
is that we unroll loop containing instruction having REG_LABEL referencing
insn outside. While updating references to insns it aborts on reference
to insn outside unrolled loop.
I am not quite sure why it didn't happen previously - perhaps as a result
of strengthtened gcse, but it looks valid transformation to me and I
believe I need just avoid the abort.

Fri Jan 11 11:41:26 CET 2002  Jan Hubicka  <jh@suse.cz>
	* (final_reg_note_copy): Avoid crash on REG_LABEL note referencing
	outside.
Index: unroll.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/unroll.c,v
retrieving revision 1.156
diff -c -3 -p -r1.156 unroll.c
*** unroll.c	2002/01/10 21:00:43	1.156
--- unroll.c	2002/01/11 10:39:06
*************** final_reg_note_copy (notesp, map)
*** 1741,1751 ****
  	    {
  	      rtx insn = map->insn_map[INSN_UID (XEXP (note, 0))];
  
! 	      /* If we failed to remap the note, something is awry.  */
  	      if (!insn)
! 		abort ();
! 
! 	      XEXP (note, 0) = insn;
  	    }
  	}
  
--- 1741,1756 ----
  	    {
  	      rtx insn = map->insn_map[INSN_UID (XEXP (note, 0))];
  
! 	      /* If we failed to remap the note, something is awry.
! 		 Allow REG_LABEL as it may reference label outside
! 		 the unrolled loop.  */
  	      if (!insn)
! 		{
! 		  if (REG_NOTE_KIND (note) != REG_LABEL)
! 		    abort ();
! 		}
! 	      else
! 	        XEXP (note, 0) = insn;
  	    }
  	}
  



More information about the Gcc-patches mailing list