https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69299
--- Comment #7 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #3) > Maybe we really need to have two types of memory > constraints, ones which can be worst case always satisfied by reloading > their address into an address register and another ones which can be worst > case always satisfied by loading the memory into a temporary register (for > loads) or storing it from a temporary register. > > Or consider the constraint as CT_MEMORY only if the operand satisfies the > constraint predicate and as CT_FIXED_FORM (or whatever is the default) > otherwise? Only normal CT_MEMORY, for Bm as long as it satisfies > memory_operand, the exact address form doesn't really matters, but what > matters is something inherent in the memory (and ISA flags). I think it is a good idea. We need memory constraint which prevents memory address reloading. So I've started to implement the new type of constraint.