The Impact of Interprocedural Class Analysis on Optimization

David Grove
The runtime performance of object-oriented languages often suffers due to the overhead of dynamic dispatching. In order to make these languages competitive with traditional languages, optimizing compilers attempt to eliminate as many of the dynamic dispatches as possible. A variety of local and intraprocedural techniques have been developed to do this, but they can be ineffective when they are unable to statically bind and inline a message send. To enable better analysis across non- inlined message sends, interprocedural analysis is required. In this paper we describe a simple algorithm for interprocedural class analysis and empirically evaluate its effectiveness as a tool for program optimization. We demonstrate that interprocedural class analysis can substantially decrease application execution times when compared to applications optimized with only intraprocedural techniques.
CASCON'95 Conference Proceedings, Toronto, Ontario, November, 1995.

Winner of the Best Student Paper Award for CASCON'95

To get the PostScript file, click here.

Cecil/Vortex Project