A Practical MHP Information Analysis for Concurrent Java Programs

In this paper we present an implementation of May Happen in Parallel analysis for Java that attempts to address some of the practical implementation concerns of the original work. We describe a design that incorporates techniques for aiding a feasible implementation and expanding the range of acceptable inputs. We provide experimental results showing the utility and impact of our approach and optimizations using a variety of concurrent benchmarks.

[1]  Dirk Grunwald,et al.  Compile-time Analysis and Optimization of Explicitly Parallel Programs* , 1997, Parallel Algorithms Appl..

[2]  Bjarne Steensgaard,et al.  Points-to analysis in almost linear time , 1996, POPL '96.

[3]  Vivek Sarkar Analysis and Optimization of Explicitly Parallel Programs Using the Parallel Program Graph Representation , 1997, LCPC.

[4]  Urs Hölzle,et al.  Removing unnecessary synchronization in Java , 1999, OOPSLA '99.

[5]  Doug Lea Concurrent Programming in Java. Second Edition: Design Principles and Patterns , 1999 .

[6]  Erik Ruf,et al.  Effective synchronization removal for Java , 2000, PLDI '00.

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

[8]  Acm Sigsoft,et al.  Proceedings of the SIGPLAN/SIGSOFT Workshop on Program Analysis For Software Tools and Engineering, PASTE '98, Montreal, Canada, June 16, 1998 , 1998, PASTE.

[9]  Doug Lea,et al.  Concurrent programming in Java - design principles and patterns , 1996, Java series.

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

[11]  Stephen N. Freund,et al.  Type-based race detection for Java , 2000, PLDI '00.

[12]  Vivek Sarkar,et al.  Parallel Program Graphs and their Classification , 1993, LCPC.

[13]  Jaejin Lee,et al.  Compilation techniques for explicitly parallel programs , 1999 .

[14]  Jong-Deok Choi,et al.  Hybrid dynamic data race detection , 2003, PPoPP '03.

[15]  George S. Avrunin,et al.  An efficient algorithm for computing MHP information for concurrent Java programs , 1999, ESEC/FSE-7.

[16]  Thomas R. Gross,et al.  Object race detection , 2001, OOPSLA '01.

[17]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[18]  Ondrej Lhoták,et al.  Points-to analysis using BDDs , 2003, PLDI '03.

[19]  Laurie Hendren,et al.  Soot---a java optimization framework , 1999 .

[20]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.

[21]  Jong-Deok Choi,et al.  Efficient and precise datarace detection for multithreaded object-oriented programs , 2002, PLDI '02.

[22]  O. Lhoták Spark: A flexible points-to analysis framework for Java , 2002 .

[23]  Barbara G. Ryder,et al.  Points-to analysis for Java using annotated constraints , 2001, OOPSLA '01.

[24]  John Vlissides,et al.  Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications , 2001, OOPSLA 2001.