This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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