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

Reply via email to