[PATCH, RFC] LRA subreg handling

Matthew Fortune Matthew.Fortune@imgtec.com
Fri Jan 16 12:39:00 GMT 2015


Jeff Law <law@redhat.com> writes:
> On 01/15/15 03:13, Robert Suchanek wrote:
> >> Robert, can you look at reload.c::reload_inner_reg_of_subreg and
> >> verify that the comment just before its return statement is
> >> effectively the situation you're in.
> >>
> >> There are certainly cases where a SUBREG needs to be treated as an
> >> in-out operand.  We walked through them eons ago when we were poking
> >> at SSA for RTL.  But the details have long since faded from memory.
> >
> > The comment pretty much applies to my situation.  The only difference
> > I can see is that reload would have had hard registers at this point.
> > In the testcase, LRA does not have hard registers assigned to the
> > concerned pseudo(s), thus, it can't rely on the information in
> > hard_regno_nregs to check if the number of registers in INNER is
> different to the number of words in INNER.
> The differences (hard vs pseudo regs) are primarily an implementation
> detail.  I was really looking to see if there was existing code which
> would turn an output reload into an in-out reload for these subregs.
> 
> The in-out nature of certain subregs is something I've personally
> stumbled over in various contexts (for example, this also came up during
> RTL-SSA investigations years ago).

Committed as r219730 on Robert's behalf.

Thanks,
Matthew



More information about the Gcc-patches mailing list