On 8/13/24 3:19 AM, Richard Sandiford wrote:


And the inconsistency was driving me bananas as my mental model is that
(reg:DI N) covers N and N+1 and all that changes in the order based on
endianness.   ie, if we have (set (reg:DI 0) (...)) that changes d0/d1.
   But maybe that's just 20 years of little endian thinking creeping in.

In which case (subreg:DI (reg:SI d0) 0) is actually meaningless.

Yeah.  The same problem can happen for little-endian too, with e.g.
a doubleword paradoxical subreg of the final hard register leaking
into the virtual registers.  But the failure mode tends to be less
brutal then.  That case is probably more like big-endian
(subreg:DI (reg:SI a0) 0), where the combination d7+a0 would be
rejected for register class reasons.
I think the only sensible move is to revert, re-open the bz and re-analyze. Damn. Back into reload ;(

jeff

Reply via email to