This is the mail archive of the gcc-bugs@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: mips-sgi-irix6.5SE doesn't bootstrap


> If you've got an x86 in the UK, you should probably try a 3-stage,
> expect cccp to be mis-compiled by the stage1 compiler -- the stage2
> cpp will core dump when it's used late in stage2.

I got an earlier failure in cse.  % NBUCKETS in line 1431 was compiled
incorrectly.  I have a patch which I am currently testing:

Wed May 20 20:39:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* reload1.c (reload_reg_free_before_p): Earlier inputs might
	now conflict.

Index: reload1.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/reload1.c,v
retrieving revision 1.32
diff -p -r1.32 reload1.c
*** reload1.c	1998/05/19 09:23:21	1.32
--- reload1.c	1998/05/20 19:39:56
*************** reload_reg_free_before_p (regno, opnum, 
*** 4726,4739 ****
        return ! TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno);
  
      case RELOAD_FOR_INPUT:
!       /* The only things earlier are the address for this and
! 	 earlier inputs, other inputs (which we know we don't conflict
! 	 with), and addresses of RELOAD_OTHER objects.  */
  
!       for (i = 0; i <= opnum; i++)
  	if (TEST_HARD_REG_BIT (reload_reg_used_in_input_addr[i], regno)
  	    || TEST_HARD_REG_BIT (reload_reg_used_in_inpaddr_addr[i], regno))
  	  return 0;
  
        return ! TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno);
  
--- 4726,4742 ----
        return ! TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno);
  
      case RELOAD_FOR_INPUT:
!       /* The only things earlier are the address for this and earlier inputs,
! 	 earlier inputs, and addresses of RELOAD_OTHER objects.  */
  
!       for (i = 0; i < opnum; i++)
  	if (TEST_HARD_REG_BIT (reload_reg_used_in_input_addr[i], regno)
  	    || TEST_HARD_REG_BIT (reload_reg_used_in_inpaddr_addr[i], regno))
  	  return 0;
+ 
+       if (TEST_HARD_REG_BIT (reload_reg_used_in_input_addr[opnum], regno)
+ 	  || TEST_HARD_REG_BIT (reload_reg_used_in_inpaddr_addr[opnum], regno))
+ 	return 0;
  
        return ! TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno);
  


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