Pointer analysis for multithreaded programs

被引:13
作者
Rugina, R [1 ]
Rinard, M [1 ]
机构
[1] MIT, Comp Sci Lab, Cambridge, MA 02139 USA
关键词
D O I
10.1145/301631.301645
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper presents it novel interprocedural, flow-sensitive, and context-sensitive pointer analysis algorithm for multithreaded programs that may concurrently update shared pointers. 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 full range of constructs in multithreaded programs, including recursive functions, function pointers, structures, arrays, nested structures and arrays, pointer arithmetic, casts between pointer variables of different 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 sizable set of multithreaded programs written in the Cilk multithreaded programming language. Our experimental results show that the analysis has good precision and converges quickly for our set of Cilk programs.
引用
收藏
页码:77 / 90
页数:14
相关论文
共 26 条
[1]  
Andersen L. O., 1994, PhD thesis
[2]  
BARUA R, 1999, P 26 INT S COMP ARCH
[3]  
BOGLE P, 1994, P 9 ANN C OBJ OR PRO
[4]  
CHENG G, 1998, P 10 ANN ACM S PAR A
[5]  
CHOI J, 1993, 20 ANN S PRINC PROGR
[6]  
DINIZ P, 1997, P 24 ANN ACM S PRINC, P187
[7]  
EMAMI M, 1994, P ACM SIGPLAN 94 C P, P242
[8]  
Falsafi B., 1994, Proceedings Supercomputing '94 (Cat. No.94CH34819), P380, DOI 10.1109/SUPERC.1994.344301
[9]  
FRIGO M, 1998, P SIGPLAN 98 C PROGR
[10]  
Grunwald Dirk, 1993, P 4 ACM SIGPLAN S PR