remembering comparison modes

Michael Meissner meissner@cygnus.com
Wed Jan 24 10:22:00 GMT 2001


On Wed, Jan 24, 2001 at 05:46:33PM +0000, Bernd Schmidt wrote:
> On Wed, 24 Jan 2001, Michael Meissner wrote:
> > >
> > > Er, strict_low_part is a wrapper only.  It never has a mode.
> > > The mode is taken from the subreg that is its argument.
> >
> > On the other hand, it makes looking up what type of SET (ie, QI/HI/etc.)
> > you are dealing with if you can't just check the mode of SET_DEST (you can't
> > check the mode of SET_SRC because that might be a CONST_INT).  I'm pretty sure
> > there are lots of places in the compiler that blindly do it.  Doing a simple
> > minded grep for GET_MODE.*SET_DEST, I find:
> >
> > 	combine.c	cse.c		function.c	gcse.c
> > 	integrate.c	jump.c		loop.c		recog.c
> > 	regclass.c	reload1.c	rtlanal.c	ssa.c
> >
> > I haven't checked every usage, but it wouldn't surprise me if either their are
> > places that blindly assume the destination has the correct mode, or don't
> > optimize strict_low_part constructs as well.
> 
> Maybe I should get back to my abandoned attempt to get rid of strict_low_part...

I never understood why we have strict_low_part in the first place, when we have
insv, which is more general in that you can also do the equivalent of
strict_high_part if we had that.

-- 
Michael Meissner, Red Hat, Inc.  (GCC group)
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886, USA
Work:	  meissner@redhat.com		phone: +1 978-486-9304
Non-work: meissner@spectacle-pond.org	fax:   +1 978-692-4482


More information about the Gcc-patches mailing list