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