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: Extreme PRE compile times


On Thursday 13 November 2003 22:33, Daniel Berlin wrote:
> > The idea I had to work around this a bit, is to introduce some kind of GC
> > pool allocator.  A pass would allocate some memory in GC space, and
> > allocate/free objects in that space.  Memory for freed objects could be
> > re-used, just like with "real" alloc pools.  The pass would be
> > resposnsible for making sure that nothing points at "freed" objects.  At
> > the end of the pass the space would be "released" to the garbage
> > collector.
>
> This is just arenas with page table entries shared with the gc, AFAICT.

Not shared, at least not until the end of the pass.  Otherwise the pages for 
the "arena" would be visible to all of GC, and that's exactly what you'd be 
trying to avoid :-P

> > This all is probably not too hard to implement for the page allocator
> > (dunno about ggc-simple/ggc-zone, or what would happen on out-of-memory,
> > or...). The thing is, right now it would have to be implemented for
> > _three_ different collectors :-(
>
> The zone collector can do this trivially. Just create a new zone at the
> beginning of the pass, and free it at the end!

What happens if some objects in the zone are still live?  Copying?

Gr.
Steven


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