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]

obscure reload fix




I've just installed this patch.  It fixes an obscure reload bug exposed by
the mn103 port.


        * reload.c (find_reloads): Do not replace a pseudo with 
        (MEM (reg_equiv_addr)) in the initializing insn for the
        pseudo.

Index: reload.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gcc/reload.c,v
retrieving revision 1.127
diff -c -3 -p -r1.127 reload.c
*** reload.c	1998/07/08 09:43:20	1.127
--- reload.c	1998/09/19 04:49:18
*************** find_reloads (insn, replace, ind_levels,
*** 2660,2666 ****
  	    substed_operand[i] = recog_operand[i]
  	      = reg_equiv_mem[regno];
  #endif
! 	  if (reg_equiv_address[regno] != 0)
  	    {
  	      /* If reg_equiv_address is not a constant address, copy it,
  		 since it may be shared.  */
--- 2660,2667 ----
  	    substed_operand[i] = recog_operand[i]
  	      = reg_equiv_mem[regno];
  #endif
! 	  if (reg_equiv_address[regno] != 0
! 	      && (set == 0 || &SET_DEST (set) != recog_operand_loc[i]))
  	    {
  	      /* If reg_equiv_address is not a constant address, copy it,
  		 since it may be shared.  */



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