DyC Status
We're working on our new system, code-named DyC.
We finished the design and are now hacking on Multiflow. See
the writeups in the documentation
web on DyC. You probably will also want to look at our paper in PEPM `97.
Here is a summary of what is new.
- A mechanism for specializing functions on their parameters,
differently for different call sites
- A general mechanism for replicating (called polyvariant)
specialization that can be used to do multi-way loop unrolling
- Nested and overlapping dynamic regions
- An annotation to indicate that some code should be stitched
lazily, enabling the programmer to dynamically guard unsafe
specialized code (i.e., code that may cause the stitcher to
generate an exception or not terminate) or code that should otherwise
not be specialized unless it is needed
- Conditional specialization
- Merged setup and stitching, creating a specialized dynamic compiler
For a detailed progress report, see the developer's page.
Other things people are working on:
- Charlie
- Changing Multiflow's Alpha backend to generate 64-bit code
- Changing Multiflow's calling convention to the standard one on the Alpha
- Porting new Multiflow backends (not yet)
- Ed
- Building a cost-benefit model of the dynamic-compilation system
- Designing an on-line algorithm for deciding when to
perform dynamic compilation
- Designing a tool to statically estimate benefit from
dynamic compilation (not yet)
- Designing a tool to suggest dynamic regions and run-time
constants (not yet)