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]

Re: proposal for new single-bit BImode for IA-64


	So my thinking would be to add some macros to give the sizes of
	the PxImodes instead of adding BImode.

That sounds like a useful extension to my proposal.  However, I am concerned
about the practicality of implementing this.

PxImodes have existed for so long as a special case that there may be ports
that use them in strange ways that will break if we try to start optimizing
them.

I would need to change the class of PXImodes from MODE_PARTIAL_INT to MODE_INT.
Otherwise they won't be optimized, and if they aren't optimized, then they
are useless to me.  But we can't use MODE_INT unless a bit size is specified,
which means changing every port that uses PxImodes, which is impractical.
This could perhaps be configurable though, use MODE_INT if a bit size was
specified, otherwise use MODE_PARTIAL_INT, which makes the change a little
more complicated.

This means we still have special treatment for PXImodes though, so it isn't
clear if this is worth the bother.  This also makes the internals a little
more confusing, since PSImode may behave rather differently from one port to
the next.

In the end, PQImode would end up the same as BImode for the IA-64 port, except
for the name.  So there is no benefit to the IA-64 port to use PQImode instead
of BImode.  I kind of like the name BImode.  Comparison operators are
inherently true/false operations that return a single bit of info.  I think
it is useful to have a mode to represent that.

There is one possible advantage I can see; we don't have an additional
MODE_INT mode that might confuse other ports.

I'll take a stab at this to see if I can get something working, but if it
gets to be too much of a mess then I will fall back to adding a BImode.

Jim

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