March 14 '96 Seminar Agenda
A flow-directed inlining strategy uses information derived
from control-flow analysis to specialize and inline procedures for
functional and object-oriented languages. Since it uses control-flow
analysis to identify candidate call sites, flow-directed inlining can
inline procedures whose relationships to their call sites are not
apparent. For instance, procedures defined in other modules, passed
as arguments, returned as values, or extracted from data structures
can all be inlined. Flow-directed inlining specializes procedures for
particular call sites, and can selectively inline a particular
procedure at some call sites but not at others. Finally,
flow-directed inlining encourages modular implementations:
control-flow analysis, inlining, and post-inlining optimizations are
all orthogonal components. Results from a prototype implementation
indicate that this strategy effectively reduces procedure call
overhead and leads to significant reduction in execution time.
This is joint work with Andrew Wright.
11:00am
Carl Gunter: Abstracting Dependencies Between Software Configuration Items
This project studies an abstract model of dependencies between
software configuration items based on a theory of concurrent
computation over a class of enriched Petri nets. The primary goal
is to illustrate the descriptive power of the model and lay
theoretical groundwork for using it to design software configuration
maintenance tools. As a start in this direction, the work analyzes
and addresses certain limitations in make description files
using a form of abstract interpretation.
12:00pm Lunch
2:00pm Greg Morrisett:
TIL/ML Compiler Internals
The TIL compiler is a prototype compiler for Standard ML developed
by various people at CMU. TIL incorporates many novel technologies,
including dynamic type dispatch (a.k.a. intensional polymorphism),
"mostly" tag-free garbage collection, a statically typed intermediate
language, and a fairly complete suite of lambda-calculus-based
optimizations. In this talk, I will walk through the internal
structure of TIL, discuss the good and bad design decisions that we
made, and plans for addressing the shortcomings of the current
system.
3:00pm New Business
3:15pm Lorenz Huelsbergen:
Very Concurrent, Incremental Garbage Collection
At least two phenomena are shaping language implementation: computers
are becoming more parallel and garbage collection is gaining
acceptance as a desirable mechanism for storage management. This
motivates the investigation of using multiple processors to both speed
the reclamation of spent storage and to ameliorate the overhead --
perceptible pauses in particular -- of garbage collection.
I will describe a new mark-and-sweep collection algorithm based on
node coloring and designed to address these goals. In this algorithm,
allocation, marking, and sweeping proceed concurrently in three
separate threads. Further concurrency is available in the mark and
sweep threads.
This is very much work in progress.
4:00pm Discussion