On Wed, Jan 10, 2024 at 10:51:32AM +0100, Richard Biener wrote:
> > @@ -2742,8 +2743,11 @@ analyze_access_subtree (struct access *r
> >       tree rt = root->type;
> >       gcc_assert ((root->offset % BITS_PER_UNIT) == 0
> >                   && (root->size % BITS_PER_UNIT) == 0);
> > -     root->type = build_nonstandard_integer_type (root->size,
> > -                                                  TYPE_UNSIGNED (rt));
> > +     if (TREE_CODE (root->type) == BITINT_TYPE)
> > +       root->type = build_bitint_type (root->size, TYPE_UNSIGNED (rt));
> 
> I suppose we don't exactly need to preserve BITINT-ness, say if
> root->size fits the largest supported integer mode?  It's OK as-is

Sure, we could use INTEGER_TYPE in that case, but if we use BITINT_TYPE,
it won't do harm either, worst case it will be lowered to those
INTEGER_TYPEs later again.
What is IMHO important is not to introduce BITINT_TYPEs where they weren't
used before, we didn't need to use them before either.  And to use
BITINT_TYPEs for large ones which can't be expressed in INTEGER_TYPEs.

        Jakub

Reply via email to