This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Antwort: Re: Antwort: Re: Antwort: patch to shrink the size of df_refs.


Kenneth Zadeck <zadeck@naturalbridge.com> schrieb am 25.09.2008 17:39:17:

> Markus Milleder wrote:
> > Kenneth Zadeck <zadeck@naturalbridge.com> schrieb am 25.09.2008 13:53:55:
> >
> >
> >> Markus Milleder wrote:
> >>
> >>> gcc-patches-owner@gcc.gnu.org schrieb am 25.09.2008 02:10:12:
> >>>
> >>>
> >>>> This patch makes a modest reduction in the size of df_refs.   It does
> >>>>
> >>>>
> >>> Is this worth the complication ?
> >>>
> >>> To my untrained eye, the only savings is putting the bb pointer
> >>> (in df_artificial_ref) at the same place as the rtx pointer
> >>> (in df_regular_ref and df_extract_ref).
> >>>
> >>>
> >>>
> >> no, there are also no loc pointers in many of the regular refs so they
> >> use the base_ref version which saves another pointer.
> >>
> >
> > ... which has no effect on the total size of the union, unless I totally
> > misunderstand how unions work.
> >
> > I.e. sizeof(df_ref_d) == max( sizeof(any of the possibilities) ), which
> > by my count is struct df_extract_ref.
> >
> >
> no, you have misunderstood.    If you look in the code in df-scan.c ,
> you will see that there is a different alloc pool for each of the 4
> variants, each with an element size based on the size of the variant,
> not the size of the total union.
>
Thanks, that's what I missed.

So, depending on the type distribution, savings could be up to 35%.

      Markus Milleder



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]