Steven Bosscher wrote:
On Friday 08 April 2005 00:12, James E Wilson wrote:
On Thu, 2005-04-07 at 04:35, Bernd Schmidt wrote:
Try the patch below - does it fix the problem?
OK, I will try it. This may take about 2 days. My lone IA-64 machine
is busy doing other stuff at the moment.
With this patch, I can bootstrap the reload-branch (c,objc,c++,f95).
Woot. I've checked it in.
Bernd
* reload1.c (find_optional_reg, inherit_one_chain): Always use
set_reload_reg to assign a register to a reload.
Index: reload1.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/reload1.c,v
retrieving revision 1.463.2.3
diff -c -p -r1.463.2.3 reload1.c
*** reload1.c 7 Apr 2005 11:21:35 -0000 1.463.2.3
--- reload1.c 7 Apr 2005 11:30:48 -0000
*************** static HARD_REG_SET *pseudo_previous_reg
*** 149,155 ****
static HARD_REG_SET *pseudo_forbidden_regs;
/* All hard regs that have been used as spill registers for any insn are
! marked in this set. */
static HARD_REG_SET used_spill_regs;
/* Nonzero if indirect addressing is supported on the machine; this means
--- 149,156 ----
static HARD_REG_SET *pseudo_forbidden_regs;
/* All hard regs that have been used as spill registers for any insn are
! marked in this set. This is used to update regs_ever_live in
! finish_spills. */
static HARD_REG_SET used_spill_regs;
/* Nonzero if indirect addressing is supported on the machine; this means
*************** find_optional_reg (struct reload *rl, HA
*** 2916,2926 ****
if (i == nregs)
{
if (do_allocate)
! {
! rl->nregs = nregs;
! rl->reginfo.regno = suggested;
! rl->reginfo.allocated = 1;
! }
return 1;
}
}
--- 2917,2923 ----
if (i == nregs)
{
if (do_allocate)
! set_reload_reg (rl, suggested);
return 1;
}
}
*************** find_optional_reg (struct reload *rl, HA
*** 2945,2955 ****
return 0;
if (do_allocate)
! {
! rl->nregs = HARD_REGNO_NREGS (best_reg, rl->mode);
! rl->reginfo.regno = best_reg;
! rl->reginfo.allocated = 1;
! }
return 1;
}
--- 2942,2949 ----
return 0;
if (do_allocate)
! set_reload_reg (rl, best_reg);
!
return 1;
}
*************** inherit_one_chain (struct inherit_chain
*** 3656,3664 ****
as above. */
/* Change the head reload to use the inheritance register. */
! head_rl->nregs = HARD_REGNO_NREGS (best_reg, head_rl->mode);
! head_rl->reginfo.regno = best_reg;
! head_rl->reginfo.allocated = 1;
/* Extend lifetime of original reload. Set the LIVE_UNTIL_END flag so
that following calls to compute_birth_death will preserve this
--- 3650,3656 ----
as above. */
/* Change the head reload to use the inheritance register. */
! set_reload_reg (head_rl, best_reg);
/* Extend lifetime of original reload. Set the LIVE_UNTIL_END flag so
that following calls to compute_birth_death will preserve this