Using types to analyze and optimize object-oriented programs
- 1 January 2001
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 23 (1), 30-72
- https://doi.org/10.1145/383721.383732
Abstract
Object-oriented programming languages provide many software engineering benefits, but these often come at a performance cost. Object-oriented programs make extensive use of method invocations and pointer dereferences, both of which are potentially costly on modern machines. We show how to use types to produce effective, yet simple, techniques that reduce the costs of these features in Modula-3, a statically typed, object-oriented language. Our compiler performs type-based alias analysis to disambiguate memory references. It uses the results of the type-based alias analysis to eliminate redundant memory references and to replace monomorphic method invocation sites with direct calls. Using limit, static, and running time evaluation, we demonstrate that these techniques are effective, and sometimes perfect for a set of Modula-3 benchmarks.Keywords
This publication has 9 references indexed in Scilit:
- Interprocedural pointer alias analysisACM Transactions on Programming Languages and Systems, 1999
- The effects of the precision of pointer analysisLecture Notes in Computer Science, 1997
- Simple and effective analysis of statically-typed object-oriented programsPublished by Association for Computing Machinery (ACM) ,1996
- VortexACM SIGPLAN Notices, 1996
- Eliminating virtual function calls in C++ programsPublished by Springer Science and Business Media LLC ,1996
- Profile-guided receiver class predictionACM SIGPLAN Notices, 1995
- Type feedback vs. concrete type inferenceACM SIGPLAN Notices, 1995
- Global Data Flow Analysis and Iterative AlgorithmsJournal of the ACM, 1976
- Efficiency of a Good But Not Linear Set Union AlgorithmJournal of the ACM, 1975