This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: hermantenbrugge at home dot nl (Herman ten Brugge)
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 30 Apr 2003 21:53:34 -0400
- Subject: Re: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED
On Wednesday, April 30, 2003, at 03:31 PM, Herman ten Brugge wrote:
Hello,
I found a problem with the -fnew-ra option of the compiler. I analysed
the problem and found that the macro HARD_REGNO_CALL_PART_CLOBBERED
is not used by the new register allocator.
It's not a problem in new-ra (i've dealt with exactly this problem in
the past month, i never got around to sending a patch to the mainline).
It's in df.c.
All register info used from new-regalloc is coming from df.c, that's
where you need to add the macro.
Right somewhere in this code:
if (df->flags & DF_HARD_REGS)
{
/* Calls may also reference any of the global registers,
so they are recorded as used. */
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (global_regs[i])
{
x = df_reg_use_gen (i);
df_uses_record (df, &SET_DEST (x),
DF_REF_REG_USE, bb, insn, 0);
}
}