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