GC performance - was Re: [gclist] GC topics

boehm.PARC@xerox.com boehm.PARC@xerox.com
Fri, 23 Feb 1996 13:39:40 PST


"I suspect I'm missing something ... But, it would seem that the presence of
a and b as arguments would guarantee the existence of pointers to a and b
either within the stack or within the caller of dist.  Or are compilers so
clever that they can optimize away all the obvious references.  (Apologies
if this is discussed in your thesis)."

Pointer arguments don't necessarily exist anyplace except in the callee.  The
caller may have allocated the arrays, and may no longer need to refer to them.
When the call takes place, the only references may well be in the registers
used for function arguments. (Few calling conventions these days require that
arguments be stored anywhere outside of registers.) The callee is allowed to
overwrite those once they're dead.

For some more examples, you might also look at David Chase's and my JCLT paper.
You can find it at ftp://parcftp.xerox.com/pub/gc/papers/boecha.ps.Z among
other places.

Hans