This is the mail archive of the gcc@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]

Re: reg_known_value and copying collection



On Fri, 13 Dec 2002, Geoff Keating wrote:

> > Date: Fri, 13 Dec 2002 11:16:08 -0500
> > Cc: geoffk@geoffk.org
> > From: Daniel Berlin <dberlin@dberlin.org>
> > X-OriginalArrivalTime: 13 Dec 2002 16:25:47.0218 (UTC) FILETIME=[4ACF3B20:01C2A2C4]
> >
> > reg_known_value is a non-root, xcalloc'd array used in alias analysis.
> > It contains pointers to rtx'en, and we expect it to be available the
> > whole time from a  call to init_alias_analysis until a call to
> > end_alias_analysis.
> >
> > CSE ggc_collect's during this time period (IE after init, before end).
> > The RTX's reg_known_value has in its array move.
> > It gets screwed.
> >
> > Should reg_known_value be changed to be ggc_alloc'd and made a root?
> > Anyone know of other places like this off the top of their head?
>
> You actually have two choices:
>
> - Make reg_known_value, and perhaps many other similar variables,
>   GCed; or
Actually, I haven't hit any others yet, though i'm sure i will.

> - Ensure that the moving form of GC doesn't happen in places where
>   this might matter.

The more variables you make GC'd, the less places this might matter.
The more we don't apply a moving gcc, the more fragmentation and worse
locality gets.

So ideally, I want to do both.


>
> I doubt that you really want to have every call to ggc_collect
> potentially compact memory.

We only collect when we've allocated enough since last collection anyway.
This hasn't changed.
The only thing that has changed is that we compact when we *do* collect.


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