This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: peephole2: dead regs not marked as dead
- From: Georg Lay <avr at gjlay dot de>
- To: Paolo Bonzini <bonzini at gnu dot org>
- Cc: GCC Mailing List <gcc at gcc dot gnu dot org>
- Date: Tue, 02 Nov 2010 10:00:11 +0100
- Subject: Re: peephole2: dead regs not marked as dead
- References: <4CC00268.1020803@gjlay.de> <mcrvd4v1inv.fsf@google.com> <4CC1729C.1030601@gjlay.de> <4CC34634.2050301@gnu.org> <4CC54F54.7050605@gjlay.de> <4CC5538E.4000708@gnu.org> <4CC712F0.8080308@gjlay.de> <4CC718AF.3020400@gnu.org> <4CC804E7.206@gjlay.de> <4CC80F29.5090101@gnu.org> <4CC8378A.8040100@gjlay.de> <4CC83BA3.7050401@gnu.org> <4CC94F59.4090102@gjlay.de> <4CC9532F.5020004@gnu.org>
Paolo Bonzini schrieb:
>> I already had to fix IRA and remove the following part of
>> ira-color.c::assign_hard_reg() because it makes assumptions that do
>> not hold for the machine:
>>
>> if (! allocated_hardreg_p[hard_regno]
>> && ira_hard_reg_not_in_set_p (hard_regno, mode, call_used_reg_set))
>> /* We need to save/restore the hard register in
>> epilogue/prologue. Therefore we increase the cost. */
>> {
>> /* ??? If only part is call clobbered. */
>> rclass = REGNO_REG_CLASS (hard_regno);
>> add_cost = (ira_memory_move_cost[mode][rclass][0]
>> + ira_memory_move_cost[mode][rclass][1] - 1);
>> cost += add_cost;
>> full_cost += add_cost;
>> }
>>
>
> Maybe you can use LOCAL_REGNO here too, and submit a patch for that?
Ok, I will submit a path as soon as the FSF stuff is no issue any more, so it
might take a while...
Georg