[mod.ai] Query on compilers, optimization, and garbage collection

rbbb@RICE.EDU (David Chase) (07/16/86)

I am looking for references on interactions (good and bad, intended and
unintended) between garbage collectors and compilers that (attempt to) do
optimizations.  For example, if you know of a good optimization that
reduces the amount of garbage produced, tell me about it.  If you know of
an ugly surprise that someone received when they tried to optimize code in
a garbage-collected system, tell me about that.

I realize that this isn't exactly AI, but I think people reading this list
might have some pointers (to other lists, if nothing else).

What I already have (no references for ugly surprises):

   "Optimization of Very High Level Languages-I: Value Transmission and
   its Corollaries"
   Schwartz, in Computer Languages, volume 1, pp 161-194 (1975)
   (copy optimizations, heap->stack allocation conversions)

   "Experience with the SETL Optimizer"
   Freudenberger, Schwartz and Sharir, in TOPLAS 5:1 (January 1983)
   (copy optimizations)

   "Binding Time Optimization in Programming Languages:  Some Thoughts
   Toward the Design of an Ideal Language"
   Muchnick and Jones, in POPL 3, 1976
   (heap->stack allocation conversions)

   "Shifting Garbage Collection Overhead to Compile Time"
   Barth, in CACM 20:7 (July 1977)
   (reference counting at compile time)
   
   "RABBIT: A Compiler for SCHEME"
   Steele, 1978
   (heap->stack allocation conversions for activation records)

   "Fast Arithmetic in MacLISP"
   Steele, in 1977 Macsyma Users' Conference
   (heap->stack allocation conversions for numbers)
   
   "An Optimizing Compiler for Lexically Scoped Lisp"
   Brooks, Gabriel and Steele, in Compiler Construction 1982
   (heap->stack allocation conversions for numbers)

   "A scheme of storage allocation and garbage collection for ALGOL 68"
   Branquart and Levi, in Algol 68 Implementation (North-Holland, 1971)
   (compiled marking routines)
   
   "Methods of garbage collection for ALGOL 68"
   Wodon, in Algol 68 Implementation (North-Holland, 1971)
   (compiled marking routines)

David Chase