Re: Ada GC and a bunch of other stuff

boehm@parc.xerox.com (Hans Boehm)
21 Feb 1996 00:08:15 -0500

          From comp.compilers

Related articles
[2 earlier articles]
Re: Ada GC and a bunch of other stuff ncohen@watson.ibm.com (1996-02-09)
Re: Ada GC and a bunch of other stuff dave@occl-cam.demon.co.uk (Dave Lloyd) (1996-02-13)
Re: Ada GC and a bunch of other stuff hosking@cs.purdue.edu (1996-02-13)
Re: Ada GC and a bunch of other stuff boehm@parc.xerox.com (1996-02-14)
Re: Ada GC and a bunch of other stuff dave@occl-cam.demon.co.uk (Dave Lloyd) (1996-02-16)
Re: Ada GC and a bunch of other stuff hbaker@netcom.com (1996-02-17)
Re: Ada GC and a bunch of other stuff boehm@parc.xerox.com (1996-02-21)
Re: Ada GC and a bunch of other stuff boehm@parc.xerox.com (1996-02-21)
Re: Ada GC and a bunch of other stuff dave@occl-cam.demon.co.uk (Dave Lloyd) (1996-02-23)
Re: Ada GC and a bunch of other stuff boehm@parc.xerox.com (1996-02-27)
| List of all articles for this month |

From: boehm@parc.xerox.com (Hans Boehm)
Newsgroups: comp.compilers
Date: 21 Feb 1996 00:08:15 -0500
Organization: Xerox Palo Alto Research Center
References: 96-02-113 96-02-210
Keywords: GC, parallel

(I suggest we also move this to the gc list.)


hbaker@netcom.com (Henry Baker) writes:


>Why not treat the GC as an asynchronous thread -- that the compiler
>knows about -- that has access to (most of) the live data structures?
>If this is done right, many of the problems of initialization and
>'dead code' elimination go away, because the compiler is now aware
>that stuff has to be dead from both the main process _and_ the GC
>process before it can be eliminated. So if your compiler does threads
>correctly, then it should be able to do GC correctly.


There may be performance issues with this approach. In particular,
all thread systems that I know of require shared variables to be in
memory, not in registers. Forcing all local pointer variables into
memory because the collector may need to look at them seems expensive.
(We considered this approach very briefly for guaranteeing safety of
conservative GC with C optimizers; declare all pointer variables
"volatile". It looked much too expensive to be practical. I don't
know whether there's a way to make it completely safe.)


Hans-J. Boehm
(boehm@parc.xerox.com)
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.