Richard Henderson wrote:
Jeff Law wrote:
(mem/c:DI (reg:DI 122 r122 [121]) [64 ivtmp.743+0 S8 A64])
and
(mem/c:DI (reg:DI 122 r122) [64 ivtmp.1640+0 S8 A64])
...
Yes. There's code at the start of nonoverlapping_memrefs_p to handle these cases, but as Pat pointed out, it doesn't work for large offsets from the stack/frame pointer (large enough to cause a secondary reload). I'm not sure offhand how to best fix this.

How about setting the MEM_EXPR to a fake "spill_slot_base" symbol,
plus the full frame pointer offset number?  Since the slots are
being shared, the original decl as the MEM_EXPR isn't terribly useful.
Presumably mucking around with the MEM_EXPR on the DECL isn't going to mess up inlining? What about debugging?

Jeff

Reply via email to