Affiliation:
1. Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
28 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Inlining-Benefit Prediction with Interprocedural Partial Escape Analysis;Proceedings of the 14th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages;2022-11-29
2. When threads meet events: efficient and precise static race detection with origins;Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2021-06-18
3. Escape from escape analysis of Golang;Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice;2020-06-27
4. Optimizing Remote Communication in X10;ACM Transactions on Architecture and Code Optimization;2020-01-10
5. PYE;ACM Transactions on Programming Languages and Systems;2019-07-20