Fast and Effective Optimization of Statically Typed
Object-Oriented Languages
by
David Francis Bacon
Computer Science Division
University of California, Berkeley
Abstract
In this dissertation, we show how a relatively simple and extremely fast
interprocedural optimization algorithm can be used to optimize many of the
expensive features of statically typed, object-oriented languages -- in
particular, C++ and Java.
We present a new optimization algorithm, Rapid Type Analysis, and show that
it is fast both in theory and in practice, and significantly out-performs other
"fast" algorithms for virtual function call resolution.
We present optimization algorithms for the resolution of virtual function
calls, conversion of virtual inheritance to direct inheritance, elimination of
dynamic casts and dynamic type checks, and removal of object synchronization.
These algorithms are all presented within a common framework that allows them
to be driven by the information collected by Rapid Type Analysis, or by some
other type analysis algorithm.
Collectively, the optimizations in this dissertation free the programmer
from having to sacrifice modularity and extensibility for performance.
Instead, the programmer can freely make use of the most powerful features of
object-oriented programming, since the optimizer will remove unnecessary
extensibility from the program.

|
Fast and Effective Optimization of Statically Typed Object-Oriented
Languages
David Francis Bacon
Doctoral Dissertation, Computer Science Division,
University of California, Berkeley, December 1997.
Report UCB/CSD-98-1017, 148+xii pages.
|

|
Fast and Effective Optimization of Statically Typed Object-Oriented
Languages
David Francis Bacon
Doctoral Dissertation, Computer Science Division,
University of California, Berkeley, December 1997.
UMI Microfilm, 148+xii pages.
|
|