The Quicksilver project is exploring novel compilation models for Java. Our goals are to support deep analysis, aggressive optimization, testability and control over executables, all in the context of a fully compliant Java system. Our prototype is implemented within the
Jalapeño compiler project.
Refereed publications
Presentations by group members
Group members
Call for Papers and Participation for selected conferences and workshops
Related links
-
Quasi-Static Compilation for Java,
Mauricio Serrano, Rajesh Bordawekar, Sam Midkiff, Manish Gupta,
to appear, 2000 ACM Conference on Object-Oriented Programming Languages and Systems,October 15-19, Minneapolis, Minnesota USA.
Abstract
This paper
presents the design and implementation of a Quasi-static compiler for
Java.Quasi-static compilation is a new approach that combines the benefits
of static and dynamic compilation, while maintaining compliance with the
Java standard, including support of its dynamic features. A Quasi-static
compiler relies on the generation and reuse of persistent code images to
reduce the overhead of compilation during program execution, and to provide
identical, testable and reliable binaries over different program executions.
At run-time, the Quasi-static compiler adapts pre-compiled binaries to the
current JVM instance, and uses dynamic compilation of the code when
necessary to support dynamic Java features. Our system allows
interprocedural program optimizations to be performed while maintaining
binary compatibility. Experimental data obtained using a preliminary
implementation of a Quasi-static compiler in the Jalapeño JVM clearly
demonstrate the benefits of our approach: we achieve run-time compilation
cost lower than that of fast non-optimizing compilation, and deliver the
run-time program performance of the highest optimization level supported by
the Jalapeño optimizing compiler, thus achieving the highest overall
performance. For the evaluated benchmarks, the cost of run-time quasi-static
compilation varied from 1 microseconds to 5 microseconds per code
instruction. For the SPECjvm98 benchmark suite, this represents a factor of
170 to 350 reduction in the runtime compilation overhead relative to the
Jalapeño optimizing compiler.
back to publications,
or the top
back to presentations,
or the top
back to the top
-
The Jalapeño project provides much of the infrastructure for Quicksilver.
-
The Ninja project demonstrates that Java can provide near Fortran performance on a set of Java benchmarks.
back to the top
Rajesh Bordawekar,
Manish Gupta,
Sam Midkiff,
back to the top