|
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
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
| |
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
|
Ramkrishna Chatterjee , Barbara G. Ryder , William A. Landi, Relevant context inference, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.133-146, January 20-22, 1999, San Antonio, Texas, United States
[doi> 10.1145/292540.292554]
|
 |
17
|
|
 |
18
|
Jong-Deok Choi , Ron Cytron , Jeanne Ferrante, Automatic construction of sparse data flow evaluation graphs, Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.55-66, January 21-23, 1991, Orlando, Florida, United States
[doi> 10.1145/99583.99594]
|
| |
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
|
Amer Diwan , Kathryn S. McKinley , J. Eliot B. Moss, Type-based alias analysis, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.106-117, June 17-19, 1998, Montreal, Quebec, Canada
|
 |
27
|
Maryam Emami , Rakesh Ghiya , Laurie J. Hendren, Context-sensitive interprocedural points-to analysis in the presence of function pointers, Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, p.242-256, June 20-24, 1994, Orlando, Florida, United States
|
| |
28
|
Ghiya, R. 1992. Interprocedural aliasing in the presence of function pointers. ACAPS Technical Memo 62, McGill University, Dec.
|
| |
29
|
|
 |
30
|
Rakesh Ghiya , Laurie J. Hendren, Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.1-15, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.237724]
|
| |
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
|
S. Horwitz , P. Pfeiffer , T. Reps, Dependence analysis for pointer variables, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.28-40, June 19-23, 1989, Portland, Oregon, United States
|
 |
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
|
William Landi , Barbara G. Ryder , Sean Zhang, Interprocedural modification side effect analysis with pointer aliasing, Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation, p.56-67, June 21-25, 1993, Albuquerque, New Mexico, United States
|
| |
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
|
Thomas J. Marlowe , William G. Landi , Barbara G. Ryder , Jong-Deok Choi , Michael G. Burke , Paul Carini, Pointer-induced aliasing: a clarification, ACM SIGPLAN Notices, v.28 n.9, p.67-70, Sept. 1993
[doi> 10.1145/165364.165387]
|
| |
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
|
Mooly Sagiv , Thomas Reps , Reinhard Wilhelm, Solving shape-analysis problems in languages with destructive updating, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.16-31, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.237725]
|
 |
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
|
Philip A. Stocks , Barbara G. Ryder , William A. Landi , Sean Zhang, Comparing flow and context sensitivity on the modification-side-effects problem, Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis, p.21-31, March 02-04, 1998, Clearwater Beach, Florida, United States
|
 |
81
|
|
 |
82
|
|
 |
83
|
|
| |
84
|
|
 |
85
|
|
 |
86
|
Sean Zhang , Barbara G. Ryder , William Landi, Program decomposition for pointer aliasing: a step toward practical analyses, Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering, p.81-92, October 16-18, 1996, San Francisco, California, United States
|
 |
87
|
Sean Zhang , Barbara G. Ryder , William A. Landi, Experiments with combined analysis for pointer aliasing, Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, p.11-18, June 16-16, 1998, Montreal, Quebec, Canada
|
CITED BY 33
|
|
|
|
|
Sara Porat , Marina Biberstein , Larry Koved , Bilha Mendelson, Automatic detection of immutable fields in Java, Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research, p.10, November 13-16, 2000, Mississauga, Ontario, Canada
|
|
|
|
|
|
|
|
|
|
|
|
Pedro V. Artigas , Manish Gupta , Samuel P. Midkiff , José E. Moreira, Automatic loop transformations and parallelization for Java, Proceedings of the 14th international conference on Supercomputing, p.1-10, May 08-11, 2000, Santa Fe, New Mexico, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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...
|