A reload inheritance bug

Bernd Schmidt bernds_cb1@t-online.de
Mon Jun 11 15:26:00 GMT 2007


Mark Shinwell wrote:
> Do you think it should be the case that, at the point below, _any_ reload
> with reg_rtx corresponding to a hard register should have the relevant
> bit set in reload_spill_index?

I think so.  I'm attaching a patch below.  It appears to have no effect
on all code I've tried - does it fix your test case?
> +         if (rld[r].when_needed == RELOAD_FOR_INPUT
> +             && rld[r].reg_rtx
> +             && REGNO (rld[r].reg_rtx) < FIRST_PSEUDO_REGISTER)
> +           {
> +             reload_spill_index[r] = REGNO (rld[r].reg_rtx);
> +             mark_reload_reg_in_use (j,
> +                                     rld[r].opnum,
> +                                     rld[r].when_needed,
> +                                     rld[r].mode);

I don't think we need mark_reload_reg_in_use, as there are other
mechanisms preventing conflicts.


Bernd

-- 
This footer brought to you by insane German lawmakers.
Analog Devices GmbH      Wilhelm-Wagenfeld-Str. 6      80807 Muenchen
Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 40368
Geschaeftsfuehrer Thomas Wessel, William A. Martin, Margaret Seif
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: spill_index.diff
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20070611/c846bec4/attachment.ksh>


More information about the Gcc mailing list