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