Reload bug
Eric Botcazou
ebotcazou@libertysurf.fr
Fri Apr 11 14:44:00 GMT 2003
> The code is wrong for post-SUBREG_BYTE patch as it checks that the
> partial regs have exactly size of one word, but we do allow subregs on
> registers of different sizes. We need to verify that offset can
> represent the register exactly.
Is it really wrong or is it incomplete now, in the post-SUBREG_BYTE era?
> Looking as subreg_regno_offset, I think we need to practically check
> that division in:
> return (y_offset / (mode_multiple / nregs_multiple)) * nregs_ymode;
> Does not round. When it rounds we are having registers too wide and we
> must reload.
> All the other divisions should be safe from SUBREG definition that is
> already verified by my simplify_subreg code.
> We also should add a trap to subreg_regno_offset in the mainline...
> Seems to make sense?
Do you mean that we can generate
(subreg:HI (reg/v:SI 67) 2)
and we currently have no means to fix it during the reload pass?
--
Eric Botcazou
More information about the Gcc
mailing list