This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Use RTX_AUTOINC in rs6000 predicates.md


On Tue, Jul 14, 2009 at 9:47 AM, Richard
Sandiford<rdsandiford@googlemail.com> wrote:

> Like you said in your reply in the autoinc thread, this predicate could
> be used with a new ia64-like constraint that asm writers can use. ?OTOH,
> it might make sense for the new constraint to use the same condition as
> the ia64 one, thus skipping the memory_operand check. ?We know that
> reload will make every MEM legitimate, so for exclusive checks like this,
> '(match_test "mem")' seems better than '(match_operand "memory_operand")'.
> (I was just about to start on a patch for that.)
>
> I think this is probably just telling you back what you already said,
> but the predicate's current name seems misleading; it accepts reg+reg
> addresses whereas "o" doesn't. ?So as things stand, the FP conversion
> patterns could in principle accept a non-offsettable memref that needs
> to be reloaded into an offsettable one. ?(And the insns really do need
> offsettable addresses.)
>
> So I was wondering about adding the new constraint with:
>
> ?(and (match_code "mem")
> ? ? ? (match_test "GET_RTX_CLASS (GET_CODE (XEXP (op, 0))) != RTX_AUTOINC")))
>
> and rewriting offsettable_mem_operand to use offsettable_memref_p.

I investigated the history from EGCS days and that seems reasonable.

Thanks, David


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]