[tree-ssa][ GC, Virtual operands, and GCing between passes

Richard Henderson rth@redhat.com
Mon Dec 15 22:05:00 GMT 2003


On Thu, Dec 11, 2003 at 06:13:00PM -0500, Andrew MacLeod wrote:
> > - A future compacting collector will not work if you do this.
> 
> Why not? Its still just an arbitrary vector of size N...

Because the objects that you've internal pointers to will move.

Anyway, yer screwed by a compacting collector anyway, since 
unless you want to slow down your collector significantly, you
can't have pointers into the *middle* of objects at all.

For now the best solution would seem to be "void *defs_p" and
cast to the proper pointer type when you use it.  If the GC
marker can't deal with "void *", then it needs to be fixed.

If we ever implement a compacting collector, we'll have to 
come up with some other way to represent this.  Possibly we
could do something with either paths down from the statement,
or <tree,operand> pairs.



r~



More information about the Gcc mailing list