Jeff Law <l...@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