MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Using Types to Analyze and Optimize Object-Oriented Programs

Download:
Download as a PDF | Download as a PS
by Kathryn S. Mckinley, J. Eliot, B. Moss
http://www.cs.colorado.edu/~diwan/5535-00/types.ps
Add To MetaCart

Abstract:

Object-oriented programming languages provide many software engineering benets, 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 eective, 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 eective, and often close to perfect for a set of Modula-3 benchmarks.

Citations

3266 Computer Architecture A Quantitative Approach – Hennessy, Patterson - 1995
684 ATOM: A system for building customized program analysis tools – Srivastava, Eustace - 1994
440 Points-to analysis in almost linear time – Steensgaard - 1996
357 Efficient Context-Sensitive Pointer Analysis for C Programs – Wilson, Lam - 1995
342 Context-sensitive interprocedural points-to analysis in the presence of function pointers – Emami, Ghiya, et al.
335 Limits of instruction-level parallelism – Wall - 1991
329 Analysis of pointers and structures – Chase, Wegman, et al. - 1990
287 Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis – Dean, Grove, et al. - 1995
242 Control-flow Analysis of HigherOrder Languages, or Taming Lambda – SHIVERS - 1991
213 Object-oriented type inference – Palsberg, Schwartzbach - 1991
198 Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language – Chambers, Ungar - 1989
197 Fast static analysis of c++ virtual function calls – Bacon, Sweeney - 1996
192 Interprocedural May-Alias Analysis for Pointers: Beyond k-Limiting – Deutsch - 1994
188 Polymorphic effect systems – Lucassen, Gifford - 1988
187 Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects – Choi, Burke, et al. - 1993
184 Efficiency of a good but not linear set union algorithm – Tarjan - 1975
169 Guttag, Abstraction and Specification in Program Development – Liskov, V - 1986
163 Precise concrete type inference for object-oriented languages – Plevyak, Chien - 1994
161 Systems Programming with Modula-3 – Nelson - 1991
159 Detecting conflicts between structure accesses – Larus, Hilfinger - 1988
143 Fast and Accurate Flow-Insensitive Points-To Analysis – Shapiro, Horwitz - 1997
128 Iterative Type Analysis and Extended Message Splitting: Optimizing DynamicallyTyped Object-Oriented Programs – Chambers, Ungar - 1990
126 Context-insensitive alias analysis reconsidered – Ruf - 1995
123 Reducing indirect function call overhead in C++ programs – Calder, Grunwald - 1994
122 An efficient way to find the side effects of procedure calls and the aliases of vsristbles – Banning - 1979
121 Vortex: An Optimizing Compiler for ObjectOriented Languages – Dean, DeFouw, et al. - 1996
115 Global data flow analysis and iterative algorithms – Kam, Ullman - 1976
112 Pointer-Induced Aliasing: A Problem Classification," presented at – Landi, Ryder - 1991
93 Relevant context inference – Chatterjee, Ryder, et al. - 1999
86 Simple and Effective Link-Time Optimizations of Modula-3 Programs – Fernández - 1995
84 Putting pointer analysis to work – Ghiya, Hendren - 1998
83 Quantifying Behavioral Differences Between C and C++ Programs – Calder, Grunwald, et al. - 1994
81 Profile-Guided Receiver Class Prediction – Grove, Dean, et al. - 1995
77 Making type inference practical – Oxhøj, Palsberg, et al. - 1992
73 Interprocedural pointer alias analysis – Hind, Burke, et al. - 1999
72 Fast interprocedural alias analysis – Cooper, Kennedy
72 Type-based alias analysis – Diwan, McKinley, et al. - 1998
70 Managing Interprocedural Optimization – Hall - 1990
69 The effects of the precision of pointer analysis – Shapiro, Horwitz - 1302
65 Fast Interprocedural Class Analysis – DeFouw, Grove, et al. - 1998
65 Interprocedural data flow analysis in the presence of pointers, procedure variables, and label variables – Weihl - 1980
63 A general data dependence test for dynamic, pointer-based data structures – Hummel, Hendren, et al. - 1994
56 Eliminating virtual function calls in C++ programs – Aigner, Hölzle - 1996
51 The direct cost of virtual function calls in C – Driesen, Hölzle
47 Commutativity analysis: A new analysis framework for parallelizing compilers – Rinard, Diniz - 1996
46 Register promotion in c programs – Cooper, Lu - 1997
46 Wholeprogram optimization of object-oriented languages – Chambers, Dean, et al. - 1996
43 Concrete type inference: Delivering object-oriented applications – Agesen - 1995
42 M.: Alias Analysis of Executable Code – Debray, Muth, et al. - 1998
41 Whole-Program optimization of object-oriented languages – Dean - 1996