[gclist] Compiler tables for accurate gc

David Chase chase@world.std.com
Wed, 17 Dec 1997 14:02:12 -0500


At 12:45 PM 12/17/97 -0500, Eliot Moss wrote:
>More recently I have been working with Dave Detlefs and Ole Agesen, who
>developed algorithms for accurate stack tracing for Java (reported in the
>OOPSLA gc workshop), on the impact of live variable analysis on storage
>retention. It appears that one can gain noticeable improvements even over
>_accurate_ tracing, and some programs also exhibit drastic
>differences.

Just curious, but what algorithm for "live" are you using?
There's a very good one based on SSA that has the entertaining
but unfortunate characteristic of deleting output-free
infinite loops (unless it is tweaked).  The main feature
of the algorithm is that it will also rip out dead control
flow and the expressions that govern it.

By-the-way, when you record live information with an exact
collector, you've got to be quite careful that your peepholer
or code generator does not subvert your careful work by moving
a local variable into a register just before a call for use
after the call (if you've got a free callee-save register
handy, it's a minor optimization) without reflecting this
helpful fact in the tables.  I've been burned by that one.

David Chase