New TR: "Whole-Program Optimization of Object-Oriented Languages" (Jeffrey Dean)
13 Jun 1996 19:05:09 -0400

          From comp.compilers

Related articles
New TR: "Whole-Program Optimization of Object-Oriented Languages" (1996-06-13)
| List of all articles for this month |

From: (Jeffrey Dean)
Newsgroups: comp.object,comp.compilers
Date: 13 Jun 1996 19:05:09 -0400
Organization: Computer Science & Engineering, U of Washington, Seattle
Keywords: OOP, optimize, report, available

Craig Chambers, Dave Grove, and I are pleased to announce the
availability of a new TR on "Whole-Program Optimization of
Object-Oriented Languages". This TR summarizes much of the
implementation research that has been going in the Cecil/Vortex
project here at the University of Washington during the past year or
two, and also discusses some new techniques that have not been
previously published. Be forewarned that the paper is designed for an
"archival" medium and is 70 pages long. It's available from our WWW
page (look for the 'New' icon):

It's also available via anonymous ftp from in

Here's the abstract of the report:

Whole-Program Optimization of Object-Oriented Languages

Craig Chambers, Jeffrey Dean, and David Grove

We describe Vortex, an optimizing compiler intended to produce
high-quality code for programs written in a heavily-object-oriented
style. To achieve this end, Vortex includes a number of intra- and
interprocedural static analyses that can exploit knowledge about the
whole program being compiled, including intraprocedural class
analysis, class hierarchy analysis, and exhaustive class testing, and
profile-guided optimizations such as receiver class prediction and
selective specialization. To make whole-program optimization
practical, Vortex automatically tracks cross-file optimization
dependencies at a fine granularity, triggering selective recompilation
of affected compiled files whenever the source program
changes. Empirical measurements of five purely object-oriented
benchmark programs written in Cecil, ranging in size from several
hundred to 75,000 lines of source code, indicate that these
optimization techniques improve performance of large programs by more
than a factor of three over a system with only intraprocedural static
optimizations. Vortex is written in Cecil, and it has been used as
its own compiler and optimizer during its development for the past two
years. Vortex's optimizations and implementation techniques should be
useful for any language or program where optimizations to reduce the
cost of polymorphism are important, including object-oriented
languages (we are currently adding front-ends for C++, Modula-3, and
Java to Vortex to study its effectiveness on these other language
styles) and other high-level symbolic, functional, and logic

Note: This document is 70 pages long.

If you have any comments or suggestions, we'd love to hear them.

-- Jeff

Jeffrey Dean ( Graduate Student, Cecil Project
Dept. of Computer Science & Engineering University of Washington

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.