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