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