Responding wrt "DJ's proposed changes":

> > As to what bits are modified, that's target dependent as the
> > precise size of the partial modes is target dependent.
> 
> GET_MODE_PRECISION (mode) is the precision of all modes.

True, but not all the compiler uses that info when it should.  There
are even testsuite cases that get it wrong.

> > That's one of the things that would be largely made irrelevant by
> > DJ's proposed changes.  Instead of using PSImode,
> 
> What’s PSImode?

PSImode is a mode with more precision than HImode, but less than SImode.

> > we'd be able to define modes of precisely the number of bits one
> > of these targets needs.

Not quite, Jeff.  We still use PSImode but now it has a known defined
precision, not just "fits in SImode", and may correspond to one of the
__intN types.

> Gosh, we already do that.  GET_MODE_PRECISION (mode) is exactly the width:

There's still lots of places in gcc that use SIZE where they should
use PRECISION.  I also added a step that looks for target-defined
conversions between, for example, HImode and PSImode (rather than go
HI->SI->PSI).

Plus, as there was no real C type for "partial int modes", a lot of
gcc made assumptions about type sizes.  The addition of arbitrary
__intN types means there are more places in the code that are able to
properly handle partial integer modes.

Reply via email to