This is the mail archive of the gcc-patches@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: [PATCH, RFC] LRA subreg handling


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


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