ACM Home Page
Please provide us with feedback. Feedback
Fast online pointer analysis
Full text PdfPdf (431 KB)
Source
ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 29 ,  Issue 2  (April 2007) table of contents
Article No. 11  
Year of Publication: 2007
ISSN:0164-0925
Authors
Martin Hirzel  IBM Research, Hawthorne, NY
Daniel Von Dincklage  University of Colorado, Boulder, CO
Amer Diwan  University of Colorado, Boulder, CO
Michael Hind  IBM Research, Hawthorne, NY
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 130,   Citation Count: 2
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/1216374.1216379
What is a DOI?

ABSTRACT

Pointer analysis benefits many useful clients, such as compiler optimizations and bug finding tools. Unfortunately, common programming language features such as dynamic loading, reflection, and foreign language interfaces, make pointer analysis difficult. This article describes how to deal with these features by performing pointer analysis online during program execution. For example, dynamic loading may load code that is not available for analysis before the program starts. Only an online analysis can analyze such code, and thus support clients that optimize or find bugs in it. This article identifies all problems in performing Andersen's pointer analysis for the full Java language, presents solutions to these problems, and uses a full implementation of the solutions in a Java virtual machine for validation and performance evaluation. Our analysis is fast: On average over our benchmark suite, if the analysis recomputes points-to results upon each program change, most analysis pauses take under 0.1 seconds, and add up to 64.5 seconds.


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
 
2
 
3
Andersen, L. O. 1994. Program analysis and specialization for the C programming language. Ph.D. thesis, DIKU, University of Copenhagen. DIKU report 94/19. ftp://ftp.diku. dk/pub/diku/semantics/papers/D-203.dvi.Z.
4
 
5
6
7
 
8
 
9
10
11
12
13
14
 
15
Christensen, A. S., Møller, A., and Schwartzbach, M. I. 2003. Precise analysis of string expressions. In Proceedings of the 10th International Static Analysis Symposium (SAS). Lecture Notes in Computer Science, vol. 2694. Springer Verlag. 1--18.
16
17
18
 
19
 
20
21
22
23
24
25
 
26
 
27
 
28
Ghiya, R. 1992. Interprocedural aliasing in the presence of function pointers. ACAPS Tech. Memo 62, McGill University. December.
 
29
30
 
31
Guyer, S. and Lin, C. 2003. Client-Driven pointer analysis. In Proceedings of the 10th International Static Analysis Symposium (SAS). Lecture Notes in Computer Science, vol. 2694. Springer Verlag. 214--236.
 
32
33
 
34
Heintze, N. 1999. Analysis of large code bases: The compile-link-analyze model. Unpublished Rep. http://cm.bell-labs.com/cm/cs/who/nch/cla.ps.
35
36
 
37
38
39
40
 
41
Hirzel, M., Diwan, A., and Hind, M. 2004. Pointer analysis in the pressence of dynamic class loading. In Proceedings of the 18th European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science, vol. 3086. Springer Verlag. 96--122.
42
43
44
 
45
Hunt, G., Larus, J., Abadi, M., Aiken, M., Barham, P., Fähndrich, M., Hawblitzel, C., Hodson, O., Levi, S., Muprhy, N., Steensgaard, B., Tarditi, D., Wobber, T., and Zill, B. 2005. An overview of the Singularity project. Tech. Rep. MSR-TR-2005-135, Microsoft Research.
 
46
King, A. C. 2003. Removing synchronization (extended version). Tech. rep. 11-03, Computing Laboratory, University of Kent.
47
 
48
Larus, J. R. and Chandra, S. 1993. Using tracing and dynamic slicing to tune compilers. Tech. Rep. 1174. August.
 
49
Lattner, C. and Adve, V. 2003. Data structure analysis: An efficient context-sensitive heap analysis. Tech. Rep. UIUCDCS-R-2003-2340, Computer Science Department, University of Illinois at Urbana-Champaign. April.
 
50
Le, A., Lhoták, O., and Hendren, L. 2005. Using inter-procedural side-effect information in JIT optimizations. In Proceedings of the 14th International Conference on Compiler Construction (CC). Lecture Notes in Computer Science, vol. 3443. Springer Verlag. 287--304.
 
51
Lhoták, O. and Hendren, L. 2003. Scaling Java points-to analysis using SPARK. In Proceedings of the 12th International Conference on Compiler Construction (CC). Lecture Notes in Computer Science, vol. 2622. Springer Verlag. 153--169.
52
53
54
 
55
 
56
Livshits, B., Whaley, J., and Lam, M. S. 2005. Reflection analysis for Java. In Proceedings of the Asian Symposium on Programming Languages and Systems (APLAS).
57
 
58
59
60
 
61
 
62
Qian, F. and Hendren, L. 2005. A study of type analysis for speculative method inlining in a JIT environment. In Proceedings of the 14th International Conference on Compiler Construction (CC). Lecture Notes in Computer Science, vol. 3443. Springer Verlag. 255--270.
63
64
65
 
66
Ryder, B. G. 2003. Dimensions of precision in reference analysis for object-oriented programming languages. In Proceedings of the 12th International Conference on Compiler Construction (CC), G. Hedin, ed. Lecture Notes in Computer Science, vol. 2622. Springer Verlag. 126--137.
67
 
68
69
70
71
72
73
74
 
75
76
 
77


Collaborative Colleagues:
Martin Hirzel: colleagues
Daniel Von Dincklage: colleagues
Amer Diwan: colleagues
Michael Hind: colleagues