Vortex: An Optimizing Compiler for Object-Oriented Languages
Jeffrey Dean,
Greg DeFouw,
David Grove,
Vass Litvinov, and
Craig Chambers
Previously, techniques such as class hierarchy analysis and
profile-guided receiver class prediction have been
demonstrated to greatly improve the performance of
applications written in pure object-oriented languages, but the
degree to which these results are transferable to applications
written in hybrid languages has been unclear. In part to answer
this question, we have developed the Vortex compiler
infrastructure, a language-independent optimizing compiler
for object-oriented languages, with front-ends for Cecil, C++,
Java, and Modula-3. In this paper, we describe the Vortex
compiler's intermediate language, internal structure, and
optimization suite, and then we report the results of
experiments assessing the effectiveness of different
combinations of optimizations on sizable applications across
these four languages. We characterize the benchmark
programs in terms of a collection of static and dynamic
metrics, intended to quantify aspects of the "object-oriented-
ness" of a program.
Published in the proceedings of OOPSLA'96, San Jose, CA, October, 1996.
To get the PostScript file, click
here.
Cecil/Vortex
Project