On Thu, Jan 23, 2020 at 10:33 AM Jakub Jelinek <ja...@redhat.com> wrote:
>
> On Thu, Jan 23, 2020 at 09:14:42AM +0000, Richard Sandiford wrote:
> > > The other patch is something suggested by Richard S., avoid using OImode
> > > for this and instead use a partial int mode that is smaller.  This is 
> > > still
> > > playing with fire because even the partial int mode is larger than
> > > MAX_BITSIZE_MODE_ANY_INT, but at least its precision fits into those 3
> > > WIDE_INT_MAX_ELTS wide-int.h uses.
> >
> > I think we should increase MAX_BITSIZE_MODE_ANY_INT to the precision
> > of POImode at the same time, and make that precision less than 192
> > (191 maybe?).  That way everything is "correct" without increasing
> > the size of wide_int.
>
> The 192 was chosen just to be nice and round, I guess it could be just 130
> or say 160 (128 + 32).
>
> Uros, would you be ok with bumping MAX_BITSIZE_MODE_ANY_INT to 160
> and changing the POImode patch to use 160 bits instead of 192
> if it passes testing?

We can try 160 and hope that nothing breaks due to "weird" number.

Uros.

> I guess it would still affect the sizes of the wide-int.cc arrays:
>   unsigned HOST_HALF_WIDE_INT
>     u[4 * MAX_BITSIZE_MODE_ANY_INT / HOST_BITS_PER_HALF_WIDE_INT];
>   unsigned HOST_HALF_WIDE_INT
>     v[4 * MAX_BITSIZE_MODE_ANY_INT / HOST_BITS_PER_HALF_WIDE_INT];
>   /* The '2' in 'R' is because we are internally doing a full
>      multiply.  */
>   unsigned HOST_HALF_WIDE_INT
>     r[2 * 4 * MAX_BITSIZE_MODE_ANY_INT / HOST_BITS_PER_HALF_WIDE_INT];
> so if we didn't want that, we would need to use 132; but those
> are weird anyway, because they round down rather than up.
>
>         Jakub
>

Reply via email to