JVM '02 Abstract
Targeting Dynamic Compilation for Embedded Environments
Michael Chen and Kunle Olukotun, Computer Systems Lab, Stanford University
Abstract
A generally held notion is that high quality code
comes with high compilation cost. As a result, previous efforts at minimizing
dynamic compilation costs have focused on designing fast, lightweight compilers
that sacrifice code quality for compilation speed, and resource intensive
approaches that combine multiple engines to limit expensive optimizations to
critical sections. In this paper, we show one possible way fast compilers can
be constructed to generate high quality code. We have implemented microJIT, a
small and portable just-in-time (JIT) compiler for Java that can produce high
quality code 2.5x faster than a comparable dataflow-based compiler and 30%
faster than a compiler that performs only limited optimizations. We use
dataflow techniques, but speed up compilation by minimizing the number of major
compiler passes given the number of optimizations performed. Architectural
features of our compiler also allow it to perform instruction set dependent
optimizations efficiently. microJIT achieves these high compilation rates
while still maintaining small static and dynamic memory requirements. This
compiler can be highly effective in an embedded system where computing and
memory resources are highly constrained and where multiple target platforms
must be supported.
- View the full text of this paper in
HTML and
PDF. Until August 2003, you will need your USENIX membership identification in order to access the full papers.
The Proceedings are published as a collective work, © 2002 by the USENIX Association. All Rights Reserved. Rights to individual papers remain with the author or the author's employer. Permission is granted for the noncommercial reproduction of the complete work for educational or research purposes. USENIX acknowledges all trademarks within this paper.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.
|