Re: [RFC] trailing_wide_ints with runtime variable lengths

2022-07-01 Thread Aldy Hernandez via Gcc-patches
BTW, I don't know if it got lost in all my patches, but we already have an irange allocator that given an irange, returns a chunk of memory holding a clone of that irange squished into its minimum representable pairs (see vrange_allocator and friends). So we won't ever be storing 255 or something

Re: [RFC] trailing_wide_ints with runtime variable lengths

2022-07-01 Thread Aldy Hernandez via Gcc-patches
On Fri, Jul 1, 2022 at 8:53 PM Jakub Jelinek wrote: > > On Fri, Jul 01, 2022 at 07:43:28PM +0200, Aldy Hernandez wrote: > > You can still say N=255 and things continue to work as they do now, since > > m_len[] is still statically determined. The only difference is that before, > > the size of the

Re: [RFC] trailing_wide_ints with runtime variable lengths

2022-07-01 Thread Jakub Jelinek via Gcc-patches
On Fri, Jul 01, 2022 at 07:43:28PM +0200, Aldy Hernandez wrote: > You can still say N=255 and things continue to work as they do now, since > m_len[] is still statically determined. The only difference is that before, > the size of the structure would be 2+1+255+sizeof(int) whereas now it would > b

Re: [RFC] trailing_wide_ints with runtime variable lengths

2022-07-01 Thread Richard Sandiford via Gcc-patches
Aldy Hernandez via Gcc-patches writes: > Currently global ranges are stored in SSA_NAME_RANGE_INFO as a pair of > wide_int-like objects along with the nonzero bits. We frequently lose > precision when streaming out our higher resolution iranges. The plan > was always to store the full irange bet

Re: [RFC] trailing_wide_ints with runtime variable lengths

2022-07-01 Thread Aldy Hernandez via Gcc-patches
On Fri, Jul 1, 2022, 18:58 Jakub Jelinek wrote: > On Fri, Jul 01, 2022 at 06:47:48PM +0200, Aldy Hernandez wrote: > > > So, you are looking for something like trailing_wide_ints but where > that > > > N is actually a runtime value? Then e.g. the > > > struct {unsigned char len;} m_len[N]; > >

Re: [RFC] trailing_wide_ints with runtime variable lengths

2022-07-01 Thread Jakub Jelinek via Gcc-patches
On Fri, Jul 01, 2022 at 06:47:48PM +0200, Aldy Hernandez wrote: > > So, you are looking for something like trailing_wide_ints but where that > > N is actually a runtime value? Then e.g. the > > struct {unsigned char len;} m_len[N]; > > member can't work properly either, because it isn't constant

Re: [RFC] trailing_wide_ints with runtime variable lengths

2022-07-01 Thread Aldy Hernandez via Gcc-patches
On Fri, Jul 1, 2022 at 4:58 PM Jakub Jelinek wrote: > > On Fri, Jul 01, 2022 at 04:12:55PM +0200, Aldy Hernandez wrote: > > > --- a/gcc/wide-int.h > > > +++ b/gcc/wide-int.h > > > @@ -1373,10 +1373,13 @@ namespace wi > > > : public int_traits {}; > > > } > > > > > > -/* An array of N wide_i

Re: [RFC] trailing_wide_ints with runtime variable lengths

2022-07-01 Thread Jakub Jelinek via Gcc-patches
On Fri, Jul 01, 2022 at 04:12:55PM +0200, Aldy Hernandez wrote: > > --- a/gcc/wide-int.h > > +++ b/gcc/wide-int.h > > @@ -1373,10 +1373,13 @@ namespace wi > > : public int_traits {}; > > } > > > > -/* An array of N wide_int-like objects that can be put at the end of > > - a variable-sized

Re: [RFC] trailing_wide_ints with runtime variable lengths

2022-07-01 Thread Aldy Hernandez via Gcc-patches
FYI...if no one has anything to say, I'd like to formally post this for review. So OK for trunk? Aldy On Wed, Jun 29, 2022, 11:22 Aldy Hernandez wrote: > Currently global ranges are stored in SSA_NAME_RANGE_INFO as a pair of > wide_int-like objects along with the nonzero bits. We frequentl