ACM Home Page
Please provide us with feedback. Feedback
Field analysis: getting useful and low-cost interprocedural information
Full text PdfPdf (687 KB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation table of contents
Vancouver, British Columbia, Canada
Pages: 334 - 344  
Year of Publication: 2000
ISBN:1-58113-199-2
Also published in ...
Authors
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 1,   Downloads (12 Months): 22,   Citation Count: 25
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/349299.349343
What is a DOI?

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 object-oriented 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, compile-time resolution of method calls, object inlining, removal of unnecessary synchronization, and stack allocation. Our results demonstrate that field analysis is efficient and effective. Speedups average 7% on a wide range of applications, with some times reduced by up to 27%. Compile time overhead of field analysis is about 10%.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Java Memory Model Mailing List. At URL http: //www. cs. umd. edu/"pugh/j ava/memoryModel/.
 
2
3
4
5
 
6
Compaq Computer Corporation. Compaq Fast Virtual Machine V1.2.2-1 for Alpha. At URL http://www. compaq, com/j ava.
 
7
 
8
 
9
D. L. Detlefs, K. R. M. Leino, G. Nelson, and J. B. Saxe. Extended Static Checking. Technical Report 159, Compaq, 1998.
10
11
12
 
13
D. Gay and B. Steensgaard. Stack Allocating Objects in Java. At URL http://www.research.microsoft. com/apl/stackalloc-abstract, ps.
 
14
C. Hall, S. L. Peyton-Jones, and P. M. Sansom. Unboxing Using Specialization. In Functional Programming, Glasgow 1995. Workshops in Computing Science. Springer-Verlag, 1995.
15
16
17
 
18
D. J. Scales, K. H. Randall, S. Ghemawat, and J. Dean. The Swift Java Compiler: Design and Implementation. Technical Report 2000/2, Compaq Western Research Laboratory, Apr. 2000.
19
20
21

CITED BY  25

Collaborative Colleagues:
Sanjay Ghemawat: colleagues
Keith H. Randall: colleagues
Daniel J. Scales: colleagues