This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: mips-sgi-irix6.5SE doesn't bootstrap
- To: law at cygnus dot com
- Subject: Re: mips-sgi-irix6.5SE doesn't bootstrap
- From: Joern Rennecke <amylaar at cygnus dot co dot uk>
- Date: Wed, 20 May 1998 20:45:04 +0100 (BST)
- Cc: mmitchell at usa dot net, egcs-bugs at cygnus dot com, amylaar at cygnus dot com, wilson at cygnus dot com, hjl at lucon dot org
> 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);