MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Field Analysis: Getting Useful and Low-cost Interprocedural Information (2000) [26 citations — 2 self]

by Sanjay Ghemawat ,  Keith H. Randall ,  Daniel J. Scales ,  All Daniel J. Scales
Add To MetaCart

Abstract:

We present a new limited form of interprocedural analysis called field analysis that can be used by a compiler to reduce the costs of modern language features such as objectoriented programming, automatic memory management, and run-time checks required for type safety. Unlike many previous interprocedural analyses, our analysis is cheap, and does not require access to the entire program. Field analysis exploits the declared access restrictions placed on fields in a modular language (e.g. field access modifiers in Java) in order to determine useful properties of fields of an object. We describe our implementation of field analysis in the Swift optimizing compiler for Java, as well a set of optimizations that exploit the results of field analysis. These optimizations include removal of run-time tests, compiletime resolution of method calls, object inlining, removal of unnecessary synchronization, and stack allocation. Our results demonstrate that field analysis is e#cient and e#ective. ...

Citations

276 Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis – Dean, Grove, et al. - 1995
249 Extended static checking – Detlefs, Leino, et al. - 1998
220 Escape analysis for Java – Choi, Gupta, et al. - 1999
190 Compositional pointer and escape analysis for Java – Whaley, Rinard - 1999
161 Unboxed objects and polymorphic typing – Leroy - 1992
113 A Fast Algorithm for Finding Dominators in a Flowgraph – Lengauer, Tarjan - 1979
102 Removing unnecessary synchronization in Java – Bogda, Holzle - 1999
84 Escape analysis for object oriented languages. application to java – Blanchet - 1999
81 Type-based alias analysis – Diwan, McKinley, et al. - 1998
61 Inlining of virtual methods – Detlefs, Agesen - 1999
54 Static analyses for eliminating unnecessary synchronizations from Java programs – Aldrich, Chambers, et al. - 1999
54 Simple and effective analysis of statically-typed object-oriented programs – DIWAN, MOSS, et al. - 1996
24 Unrolling lists – Shao, Reppy, et al. - 1994
22 An evaluation of automatic object inline allocation techniques – Dolby, Chien - 2000
20 Partitioning Dataflow Analyses Using Types – Ruf - 1997
12 Simple and e#ective analysis of statically-typed object-oriented programs – Diwan, Moss, et al. - 1996
6 The Swift Java Compiler: Design and Implementation – Scales, Randall, et al. - 2000
5 Unboxing Using Specialization – Hall, Peyton-Jones, et al. - 1994
3 Stack Allocating Objects in Java. At URL http://www.research.microsoft. com/apl/stackalloc-abstract.ps – Gay, Steensgaard
3 A Linear Time Algorithm for Placing Phi-nodes – Sreedhar, Gao - 1995