Thread-Sensitive Pointer Analysis for Inter-Thread Dataflow Detection

Inter-thread dataflows are of great importance in analyzing concurrent programs. Suffering from the complexity of currency, it is still difficult to identify them from Java programs precisely and efficiently. A fundamental problem in inter-thread dataflow analysis is pointer analysis. Currently, pointer analyses can be classified into context-sensitive ones and context-insensitive ones. They are either too time consuming or too imprecise and hence not suitable for scalable and high precision inter-thread dataflow analysis. To change the situation, this paper proposes a thread-sensitive pointer analysis algorithm which only uses sequences of thread starts as calling contexts. As in inter-thread dataflow analysis, the major objective is analyzing interthread dataflows not intra-thread ones, the coarse-grained context-sensitivity can not only effectively speed up the analysis, but also preserve the analyze precision as much as possible

[1]  Laurie J. Hendren,et al.  Practical virtual method call resolution for Java , 2000, OOPSLA '00.

[2]  Baowen Xu,et al.  An overview of methods for dependence analysis of concurrent programs , 2002, SIGP.

[3]  Baowen Xu,et al.  An Approach to Slicing Concurrent Ada Programs Based on Program Reachability Graphs , 2006 .

[4]  Hong-Seok Kim,et al.  Importance of heap specialization in pointer analysis , 2004, PASTE '04.

[5]  Mangala Gowri Nanda,et al.  Pointer analysis of multithreaded Java programs , 2003, SAC '03.

[6]  Michael Hind,et al.  Pointer analysis: haven't we solved this problem yet? , 2001, PASTE '01.

[7]  David Grove,et al.  Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis , 1995, ECOOP.

[8]  GhiyaRakesh,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994 .

[9]  Ondrej Lhoták,et al.  Scaling Java Points-to Analysis Using SPARK , 2003, CC.

[10]  Ondrej Lhoták,et al.  Context-Sensitive Points-to Analysis: Is It Worth It? , 2006, CC.

[11]  Monica S. Lam,et al.  Cloning-based context-sensitive pointer alias analysis using binary decision diagrams , 2004, PLDI '04.

[12]  Martin C. Rinard,et al.  Pointer analysis for structured parallel programs , 2003, TOPL.

[13]  Laurie J. Hendren,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994, PLDI '94.

[14]  Barbara G. Ryder,et al.  Parameterized object sensitivity for points-to analysis for Java , 2005, TSEM.

[15]  Martin C. Rinard,et al.  Analysis of Multithreaded Programs , 2001, SAS.

[16]  Jianjun Zhao,et al.  Slicing concurrent Java programs , 1999, Proceedings Seventh International Workshop on Program Comprehension.