This is the mail archive of the
mailing list for the GCC project.
Re: REG_OK_STRICT and EXTRA_CONSTRAINT
On Thu, 24 Aug 2006, Paolo Bonzini wrote:
> Anyway, I was not meaning to *not* account for anything, but just to
> replace REG_OK_STRICT with checks on reload_in_progress and
> reload_completed. I understand the semantics that you wanted for 'U'.
> The bug may be that in some cases, 'U' is checked for memory_address_p
> instead of strict_memory_address_p even after reload, in particular when
> it is recog.c that is constraining the operands.
If so, not more buggy than other targets that use REG_OK_STRICT
a bit more indirectly (like using REG_OK_FOR_BASE_P directly or
indirectly in their EXTRA_CONSTRAINT or GO_IF_LEGITIMATE_ADDRESS).
Some history I found on this change:
Sorry I don't remember more, in particular not where I got the
idea to choose between strict_memory_address_p and
memory_address_p. I had the flu at the time, so I might have
actually found it up myself. :-)
If the general replacement of REG_OK_STRICT is indeed
reload_in_progress || reload_completed, then the substitution
*should* of course be in principle be correct (as in: subject to