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


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).

Jeff


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