https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90270
--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to bin cheng from comment #7) > Also, when calling move_fixed_address_to_symbol, fixed_address_object_p > looks too restricted, it only considers link time constant address. In this > case, it's an array object in stack. But this is because a stack access isn't $reloc but $sp + offset and thus _not_ a symbol. But as you noticed IVOPTs computing TARGET_MEM_REF so "early" is a bit brittle due to later eventual forwardings. And those forwardings are hard to avoid because they affect fundamental predicates like may_propagate_copy where we decide early whether we can propagte into all uses before actually visiting them.