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]

Re: [patches] Fix for latent twolf spec2000 test failures II


> 
> Pá srp  3 16:34:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
> 
> 	* loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
Oops, I forgot to regenerate patch after killing diagnostic.

Pá srp  3 16:34:53 CEST 2001  Jan Hubicka  <jh@suse.cz>

	* loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.

*** loop.c.old	Fri Aug  3 14:31:40 2001
--- loop.c	Fri Aug  3 16:32:42 2001
*************** try_copy_prop (loop, replacement, regno)
*** 9306,9312 ****
  	  arg.set_seen = 0;
  	  note_stores (PATTERN (insn), note_reg_stored, &arg);
  	  if (arg.set_seen)
! 	    break;
  	}
      }
    if (! init_insn)
--- 9291,9311 ----
  	  arg.set_seen = 0;
  	  note_stores (PATTERN (insn), note_reg_stored, &arg);
  	  if (arg.set_seen)
! 	    {
! 	      rtx *pnote = &REG_NOTES (insn);
! 	      /* It is possible that we've turned previously valid REG_EQUAL to
! 	         invalid, as we change the REGNO to REPLACEMENT and unlike REGNO,
! 	         REPLACEMENT is modified, we get different meaning.  */
! 	      while (*pnote)
! 		{
! 		  if (REG_NOTE_KIND (*pnote) == REG_EQUAL
! 		      && reg_mentioned_p (replacement, XEXP (*pnote, 0)))
! 		    *pnote = XEXP (*pnote, 1);
! 		  else
! 		    pnote = &XEXP (*pnote, 1);
! 		}
! 	      break;
! 	    }
  	}
      }
    if (! init_insn)


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