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