This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Reload bug


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]