new register allocator and HARD_REGNO_CALL_PART_CLOBBERED
Daniel Berlin
dberlin@dberlin.org
Thu May 1 01:54:00 GMT 2003
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);
}
}
More information about the Gcc
mailing list