Patch to fix gcc.c-torture/compile/20010102-1.c on IA64 HP-UX
Jeff Law
law@redhat.com
Tue Sep 16 21:48:00 GMT 2008
Steve Ellcey wrote:
> On Tue, 2008-09-16 at 14:15 -0600, Jeff Law wrote:
>
>
>> But this shouldn't be necessary. REG_POINTER is set within the RTX for
>> the original pseudo and alter_reg (via changing REGNO) preserves the
>> setting for use post-reload, even though we're looking at a hard register.
>>
>> My recommendation for Steve is the same. First ensure that REG_POINTER
>> is set on the appropriate REG within the insn when the insn is created,
>> then go forward and pinpoint where it disappears as the disappearance is
>> a bug.
>> Jeff
>>
>
> Well, it disappears during the rtx register renaming phase and
> I thought I was fixing it by preserving it during register renaming.
> This is where it disappears. If I add -fno-rename-registers the
> problem goes away.
>
I went back and found the original message (luckily this is a short
thread :-)
I think the real problem here is definitely regrename. We do have to
be careful about setting REG_POINTER on a hard register, but I think
we're OK in do_replace as we're always generating a new RTX in that case.
The other two are less clear. If we choose to only fix do_replace, then
we might want an indicator in the debugging dumps for the other two
(find_oldest_value_reg, copyprop_hardreg_forward_1) when we lose a
REG_POINTER flag. It might help diagnose future instances of this problem.
Jeff
More information about the Gcc-patches
mailing list