Proceedings Article10.1145/379539.379553
Pointer and escape analysis for multithreaded programs
Alexandru Salcianu,Martin Rinard +1 more
- 18 Jun 2001
- Vol. 36, Iss: 7, pp 12-23
TL;DR: The experimental results show that analyzing the interactions between threads significantly increases the effectiveness of the region analysis and region check elimination, but has little effect for synchronization elimination.
read more
Abstract: This paper presents a new combined pointer and escape analysis for multithreaded programs. The algorithm uses a new abstraction called parallel interaction graphs to analyze the interactions between threads and extract precise points-to, escape, and action ordering information for objects accessed by multiple threads. The analysis is compositional, analyzing each method or thread once to extract a parameterized analysis result that can be specialized for use in any context. It is also capable of analyzing programs that use the unstructured form of multithreading present in languages such as Java and standard threads packages such as POSIX threads.We have implemented the analysis in the MIT Flex compiler for Java and used the extracted information to 1) verify that programs correctly use region-based allocation constructs, 2) eliminate dynamic checks associated with the use of regions, and 3) eliminate unnecessary synchronization. Our experimental results show that analyzing the interactions between threads significantly increases the effectiveness of the region analysis and region check elimination, but has little effect for synchronization elimination.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Flow-sensitive pointer analysis for millions of lines of code
Ben Hardekopf,Calvin Lin +1 more
- 02 Apr 2011
TL;DR: A new flow-sensitive pointer analysis algorithm is presented that is an order of magnitude faster than the existing state of the art, enabling for the first time flow-sensitivity pointer analysis for programs with millions of lines of code.
Semi-sparse flow-sensitive pointer analysis
Ben Hardekopf,Calvin Lin +1 more
- 21 Jan 2009
TL;DR: This paper presents a new interprocedural, flow-sensitive pointer analysis algorithm that combines two ideas-semi-sparse analysis and a novel use of BDDs-that arise from a careful understanding of the unique challenges that face flow- sensitive pointer analysis.
Flow analysis for verifying properties of concurrent software systems
TL;DR: It is indicated that sufficient precision for proving system properties can usually be achieved and that the cost for such analysis typically grows as a low-order polynomial in the size of the system.
End-to-end sequential consistency
Abhayendra Singh,Satish Narayanasamy,Daniel Marino,Todd Millstein,Madanlal Musuvathi +4 more
- 09 Jun 2012
TL;DR: This paper exploits the observation that hardware need not enforce any memory model constraints on accesses to thread-local and shared read-only locations and discusses a low-complexity hardware design that exploits this information to reduce the overhead in ensuring SC.
References
The SPLASH-2 programs: characterization and methodological considerations
Steven Cameron Woo,Moriyoshi Ohara,Evan Torrie,Jaswinder Pal Singh,Anoop Gupta +4 more
- 01 May 1995
TL;DR: This paper quantitatively characterize the SPLASH-2 programs in terms of fundamental properties and architectural interactions that are important to understand them well, including the computational load balance, communication to computation ratio and traffic needs, important working set sizes, and issues related to spatial locality.
•Book
Principles of program analysis
Flemming Nielson,Hanne Riis Nielson,Chris Hankin +2 more
- 22 Oct 1999
TL;DR: This book is unique in providing an overview of the four major approaches to program analysis: data flow analysis, constraint-based analysis, abstract interpretation, and type and effect systems.
2.1K
Escape analysis for Java
Jong-Deok Choi,Manish Gupta,Mauricio J. Serrano,Vugranam C. Sreedhar,Samuel P. Midkiff +4 more
- 01 Oct 1999
TL;DR: A new program abstraction for escape analysis, the connection graph, that is used to establish reachability relationships between objects and object references is introduced and it is shown that the connectiongraph can be summarized for each method such that the same summary information may be used effectively in different calling contexts.
•Book
Systems programming with Modula-3
Greg Nelson
- 02 Jan 1991
TL;DR: In this paper, the Modula-3 language definition is presented, together with a collection of examples, ranging from a tutorial on an object-oriented window system toolkit, to a review of the low levels of an input-output stream package.
346
Removing unnecessary synchronization in Java
Jeff Bogda,Urs Hölzle +1 more
- 01 Oct 1999
TL;DR: An interprocedural, flow- and context-insensitive dataflow analysis finds situations if an object is reachable only by a single thread, concurrent access is impossible and no synchronization is needed, and then eliminates synchronizations on these objects.
248
Related Papers (5)
Bjarne Steensgaard
- 01 Jan 1996
Erik Ruf
- 01 May 2000
Jeff Bogda,Urs Hölzle +1 more
- 01 Oct 1999
Lars Ole Andersen,Peter Lee +1 more
- 01 Jan 2005