PATCH: VAX sltu and sgeu patterns
Jeffrey A Law
law@cygnus.com
Fri Aug 18 08:02:00 GMT 2000
In message < 20000817202517.A18328@cygnus.com >you write:
> On Thu, Aug 17, 2000 at 06:01:03PM -0600, Jeffrey A Law wrote:
> > Thinking more about this, I believe you can still lose -- you could have
> a
> > pseudo which does not get a hard register. That would trigger an input
> > reload, which would trigger the no input reloads rule for cc0 using insns
> .
>
> (define_insn "sltu"
> - [(set (match_operand:SI 0 "general_operand" "=ro")
> + [(set (match_operand:SI 0 "register_operand" "=r")
> (ltu (cc0) (const_int 0)))]
>
> Err.. there's no input here. Therefore we should get no input
> reloads, only output reloads.
Sorry. I missed that. However Bernd pointed out that there's the
possibility of an input reload for the address (of the pseudo doesn't
get a hard register).
That may or may not be possible on the vax -- I'd have to sit down with
a manual or the tm.h files for a little while to figure that out.
> > The more I think about it, the more I think it's better to include the
> > comparison in the pattern itself. Then split it after reload. This woul
> d
> > ensure the cc0 setter & user stay together and shouldn't inhibit any
> > significant optimizations.
>
> None of our other cc0 ports need this, that I recall.
That's what we used to do for conditional moves on the ia32 port until
we changed it not to use cc0 if I remember correctly.
jeff
More information about the Gcc-patches
mailing list