ACM Home Page
Please provide us with feedback. Feedback
Pointer analysis for structured parallel programs
Full text PdfPdf (383 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 25 ,  Issue 1  (January 2003) table of contents
Pages: 70 - 116  
Year of Publication: 2003
ISSN:0164-0925
Authors
Radu Rugina  Cornell University, Ithaca, NY
Martin C. Rinard  Massachusetts Institute of Technology, Cambridge, MA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 89,   Citation Count: 3
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/596980.596982
What is a DOI?

ABSTRACT

This paper presents a novel interprocedural, flow-sensitive, and context-sensitive pointer analysis algorithm for multithreaded programs that may concurrently update shared pointers. The algorithm is designed to handle programs with structured parallel constructs, including fork-join constructs, parallel loops, and conditionally spawned threads. For each pointer and each program point, the algorithm computes a conservative approximation of the memory locations to which that pointer may point. The algorithm correctly handles a wide range of programming language constructs, including recursive functions, recursively generated parallelism, function pointers, structures, arrays, nested structures and arrays, pointer arithmetic, casts between different pointer types, heap and stack allocated memory, shared global variables, and thread-private global variables. We have implemented the algorithm in the SUIF compiler system and used the implementation to analyze a set of multithreaded programs written in the Cilk programming language. Our experimental results show that the analysis has good precision and converges quickly for our set of Cilk programs.


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
Andersen, L. O. 1994. Program analysis and specialization for the C programming language. Ph.D. thesis, DIKU, University of Copenhagen.
 
3
4
5
6
 
7
8
9
10
 
11
12
13
14
15
16
17
18
19
 
20
Chow, J.-H. and Harrison, W. 1992b. A general framework for analyzing shared-memory programs. In Proceedings of the 1992 International Conference on Parallel Processing, Ann Arbor, MI.
 
21
 
22
Cousot, P. and Cousot, R. 1984. Automatic Program Construction Techniques. Macmillan Publishing Company, New York, NY.
23
 
24
Detlefs, D., Leino, K. R., Nelson, G., and Saxe, J. 1998. Extended static checking. Tech. Rep. 159, Compaq Systems Research Center.
25
26
 
27
28
29
30
31
32
33
34
 
35
 
36
37
38
 
39
40
41
42
43
44
 
45
Knoop, J. 1998. Code motion for explicitly parallel programs. In Proceedings of the 4th European Conference on Parallel Processing (Euro-Par'98), Southampton, UK.
46
47
48
 
49
50
 
51
 
52
53
54
 
55
Masticola, S. and Ryder, B. 1990. Static infinite wait anomaly detection in polynomial time. In Proceedings of the 1990 International Conference on Parallel Processing, St. Charles, IL.
56
57
 
58
Midkiff, S. and Padua, D. 1990. Issues in the optimization of parallel programs. In Proceedings of the 1990 International Conference on Parallel Processing, II--105--113.
59
 
60
61
62
63
64
 
65
66
 
67
68
69
70
71
72
73
74
75
 
76
77
78
79
80
81
82
83
 
84
Sterling, N. 1994. Warlock: A static data race analysis tool. In Proceedings of the 1993 Winter Usenix Conference, San Diego, CA.
85
86
 
87
88
89
 
90
91


Collaborative Colleagues:
Radu Rugina: colleagues
Martin C. Rinard: colleagues