ACM Home Page
Please provide us with feedback. Feedback
Interprocedural pointer alias analysis
Full text PdfPdf (502 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 21 ,  Issue 4  (July 1999) table of contents
Pages: 848 - 894  
Year of Publication: 1999
ISSN:0164-0925
Authors
Michael Hind  IBM T. J. Watson Research Center, Yorktown Heights, NY
Michael Burke  IBM T. J. Watson Research Center, Yorktown Heights, NY
Paul Carini  IBM T. J. Watson Research Center, Yorktown Heights, NY
Jong-Deok Choi  IBM T. J. Watson Research Center, Yorktown Heights, NY
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 127,   Citation Count: 33
Additional Information:

abstract   references   cited by   index terms   review   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/325478.325519
What is a DOI?

ABSTRACT

We present practical approximation methods for computing and representing interprocedural aliases for a program written in a language that includes pointers, reference parameters, and recursion. We present the following contributions: (1) a framework for interprocedural pointer alias analysis that handles function pointers by constructing the program call graph while alias analysis is being performed; (2) a flow-sensitive interprocedural pointer alias analysis algorithm; (3) a flow-insensitive interprocedural pointer alias analysis algorithm; (4) a flow-insensitive interprocedural pointer alias analysis algorithm that incorporates kill information to improve precision; (5) empirical measurements of the efficiency and precision of the three interprocedural alias analysis algorithms.


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
Aho, A. V., Garey, M. R., and Ullman, J. D. 1972. The transitive reduction of a directed graph. SIAM Journal on Computing 1, 2, 131-137.
 
2
 
3
Andersen, L. O. 1994. Program analysis and specialization for the c programming language. Ph.D. thesis, DIKU, University of Copenhagen. Available at ftp.diku.dk/pub/diku/semantics/papers/D-203.dvi.Z.
 
4
Austin, T. 1995. Pointer-intensive benchmark suite, version 1.1. http://www.cs.wisc.edu/~austin/ptr-dist.html.
 
5
Balan, S. and Bays, W. 1992. Spec announces new benchmark suites cint92 and cfp92. Tech. rep., Systems Performance Evaluation Cooperative. March. SPEC Newsletter 4(1).
6
 
7
Burke, M. 1987. An interval-based approach to exhaustive and incremental interprocedural data ow analysis. Tech. rep., IBM Research. August. Report RC12702.
8
 
9
 
10
Burke, M., Carini, P., Choi, J.-D., and Hind, M. 1997. Interprocedural pointer alias analysis. Research Report RC 21055, IBM T. J. Watson Research Center. Dec.
11
 
12
 
13
Carini, P., Hind, M., and Srinivasan, H. 1995. Flow-sensitive interprocedural type analysis for C++. Research Report RC 20267, IBM T. J. Watson Research Center. Nov.
14
 
15
Chatterjee, R., Ryder, B. G. , and Landi, W. A. 1998. Relevant context inference. Tech. Rep. DCS-TR-360, Department of Computer Science, Rutgers University. Aug.
16
17
18
 
19
Chow, J. H. and Harrison, W. L. 1994. State space reduction in abstract interpretation of parallel programs. In Proceedings of the IEEE International Conference on Computer Languages. 277-288.
20
21
22
23
24
25
26
27
 
28
Ghiya, R. 1992. Interprocedural aliasing in the presence of function pointers. ACAPS Technical Memo 62, McGill University, Dec.
 
29
30
 
31
32
33
 
34
Harrison, W. L., III. 1989. The interprocedural analysis and automatic parallelisation of Scheme programs. Lisp and Symbolic Computation 2, 3 (Oct.), 176-396.
35
 
36
 
37
 
38
 
39
Hind, M. and Pioli, A. 1998b. Assessing the eects of ow-sensitivity on pointer alias analyses (extended version). Research Report 21251, IBM T. J. Watson Research Center. June. Also available as SUNY at New Paltz Technical Report #98-104.
 
40
Hind, M. and Pioli, A. 1999. Evaluating the eectiveness of pointer alias analyses. Tech. Rep. RC 21510, IBM T. J. Watson Research Center. Mar.
41
42
43
 
44
Jones, N. D. and Muchnick, S. S. 1981. Flow analysis and optimization of LISP-like structures. In Program Flow Analysis: Theory and Applications, S. S. Muchnick and N. D. Jones, Eds. Prentice-Hall, Chapter 4, 102-131.
45
46
47
 
48
Landi, W. 1997. Personal communication.
49
50
51
 
52
Landi, W. A., Ryder, B. G. , Stocks, P. A., Zhang, S., and Altucher, R. 1998. A schema for interprocedural modication side-eect analysis with pointer aliasing. Tech. Rep. DCS-TR-336, Department of Computer Science, Rutgers University. May.
 
53
54
55
 
56
Marlowe, T. J., Ryder, B. G. , and Burke, M. G. 1995. Dening ow sensitivity in data ow problems. Tech. Rep. RC 20138, IBM T. J. Watson Research Center. July.
 
57
 
58
Nackman, L. R. 1997. Codestore and incremental C++. Dr. Dobbs Journal , 92-95.
 
59
 
60
Pioli, A. 1999. Conditional pointer aliasing and constant propagation. M.S. thesis, SUNY at New Paltz. Available at http://www.mcs.newpaltz/tr as Technical Report # 99-102.
61
62
63
64
 
65
Ruf, E. 1997b. Personal communication.
66
 
67
Rutgers PROLANGS. 1999. http://www.prolangs.rutgers.edu/public.html.
 
68
Ryder, B. 1979. Constructing the call graph of a program. IEEE Transactions on Software Engineering 5, 3 (May), 216-226.
69
70
71
 
72
73
 
74
Sharir, M. and Pnueli, A. 1981. Two approaches to interprocedural data ow analysis. In Program Flow Analysis: Theory and Applications,S. S. MuchnickandN. D. Jones,Eds. Prentice- Hall, Chapter 7, 189-234.
75
 
76
 
77
SPEC. 1995. SPEC CPU95, Version 1.0. Standard Performance Evaluation Corporation, http://www.specbench/org.
78
79
80
81
82
83
 
84
85
86
87

CITED BY  33


REVIEW

"James W. Snively, Jr. : Reviewer"

Three different algorithms for dataflow analysis of computer programs are presented. Compilers for programming languages that support dynamically allocated data structures, such as C, C++, Fortran 90, Java, and LISP need to make worst-case dec  more...

Collaborative Colleagues:
Michael Hind: colleagues
Michael Burke: colleagues
Paul Carini: colleagues
Jong-Deok Choi: colleagues