[tree-ssa] Garbage collector x bb annotations

Zdenek Dvorak rakdver@atrey.karlin.mff.cuni.cz
Wed Oct 8 23:05:00 GMT 2003


Hello,

> > > > > > I have just run into the following problem: dom_children get released by
> > > > > > ggc_collect call in tree-ssa-pre.  Allocating them by ggc seems wrong to
> > > > > > me, since basic block annotations are allocated from obstack and
> > > > > > invisible to garbage collector.
> > > > > > 
> > > > > Yeah.  But there's more than that, unfortunately.  All the fields in
> > > > > struct bb_ann_d are ggc allocated.  The real solution would be to
> > > > > finally convert basic blocks to ggc.  Volunteers?
> > > > 
> > > > I may try (I need it anyway for tree-ssa-cfg branch).  The whole issue
> > > > is however quite ugly as this combines basically all allocation
> > > > mechanisms that are available in gcc (basic blocks themselves are pool
> > > > allocated).
> > > 
> > > It's not that ugly to make the fix, you simply have to throw out all
> > > those other allocation mechanisms and use ggc.
> > 
> > that's not really a good idea.  Their purpose is to improve data
> > locality, and changing this would slow down things.
> 
> Plus, right now the compiler crashes, which is much faster than all
> that tedious code generation...

:-) But really, getting things slower just because we are lazy to write
10 more lines of code is not a great idea.  I agree there is a terrible
mess in memory allocation in gcc, and having this all done by garbage
collector would be great, but we should first have a good one (btw. what
I always wondered -- is there not somewhere floating some decent free
garbage collector that could be used?)

Zdenek

> The right thing to do is to allow GC to improve data locality.  I
> believe Dan Berlin had some patches for this, although I don't know
> their state.
> 
> -- 
> - Geoffrey Keating <geoffk@geoffk.org>



More information about the Gcc mailing list