This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR rtl-optimization/32557 dataflow RTL checking ICE


On Mon, Aug 20, 2007 at 06:06:13PM +0100, Richard Sandiford wrote:
> Rask Ingemann Lambertsen <rask@sygehus.dk> writes:
> 
> >    We have
> >
> > (gdb) call debug_rtx(mws->mw_reg)
> > (subreg:DF (reg/v:DI 3 r3 [orig:327 d2 ] [327]) 0)
> >
> > (gdb) print *mws
> > $1 = {mw_reg = 0x2b27c6a994e0, type = DF_REF_REG_USE, flags = 100,
> > start_regno = 3, end_regno = 4, mw_order = 207550}
> >
> >    which doesn't seem partial to me. A good question is why it doesn't
> > simply read (reg/v:DF 3 r3 ...). Another one is why we call REGNO
> > (mws->mw_reg) instead of using mws->start_regno.
> 
> Yes indeed to the last question.  I agree that using start_regno is
> the right thing to do here.

   Built and tested sh-unknown-elf with no regressions. Bootstrapped and
tested x86_64-uknown-linux-gnu with no regressions. All with
--enable-checking=yes,rtl.

:ADDPATCH dataflow:

2007-08-21  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR rtl-optimization/32557
	* df-problems.c (df_note_bb_compute): Use mws->start_regno instead
	of REGNO (mws->mw_reg).

Index: gcc/df-problems.c
===================================================================
--- gcc/df-problems.c	(revision 127652)
+++ gcc/df-problems.c	(working copy)
@@ -3425,7 +3425,7 @@ df_note_bb_compute (unsigned int bb_inde
 	    {
 	      struct df_mw_hardreg *mws = *mws_rec; 
 	      if ((mws->type == DF_REF_REG_DEF) 
-		  && !df_ignore_stack_reg (REGNO (mws->mw_reg)))
+		  && !df_ignore_stack_reg (mws->start_regno))
 		old_unused_notes 
 		  = df_set_unused_notes_for_mw (insn, old_unused_notes, 
 						mws, live, do_not_gen, 
@@ -3488,7 +3488,7 @@ df_note_bb_compute (unsigned int bb_inde
 	{
 	  struct df_mw_hardreg *mws = *mws_rec; 
 	  if ((mws->type != DF_REF_REG_DEF)  
-	      && !df_ignore_stack_reg (REGNO (mws->mw_reg)))
+	      && !df_ignore_stack_reg (mws->start_regno))
 	    old_dead_notes
 	      = df_set_dead_notes_for_mw (insn, old_dead_notes, 
 					  mws, live, do_not_gen,

-- 
Rask Ingemann Lambertsen


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]