Affiliation:
1. IBM T.J. Watson Research Center, P.O. Box 218, Yorktown Heights, NY
Abstract
This paper presents a simple and efficient data flow algorithm for escape analysis of objects in Java programs to determine (i) if an object can be allocated on the stack; (ii) if an object is accessed only by a single thread during its lifetime, so that synchronization operations on that object can be removed. We introduce a new program abstraction for escape analysis, the
connection graph
, that is used to establish reachability relationships between objects and object references. We show that the connection graph can be summarized for each method such that the same summary information may be used effectively in different calling contexts. We present an interprocedural algorithm that uses the above property to efficiently compute the connection graph and identify the non-escaping objects for methods and threads. The experimental results, from a prototype implementation of our framework in the IBM High Performance Compiler for Java, are very promising. The percentage of objects that may be allocated on the stack exceeds 70% of all dynamically created objects in three out of the ten benchmarks (with a median of 19%), 11% to 92% of all lock operations are eliminated in those ten programs (with a median of 51%), and the overall execution time reduction ranges from 2% to 23% (with a median of 7%) on a 333 MHz PowerPC workstation with 128 MB memory.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
87 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. CodePlan: Repository-Level Coding using LLMs and Planning;Proceedings of the ACM on Software Engineering;2024-07-12
2. Optimistic Stack Allocation and Dynamic Heapification for Managed Runtimes;Proceedings of the ACM on Programming Languages;2024-06-20
3. From Leaks to Fixes: Automated Repairs for Resource Leak Warnings;Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2023-11-30
4. IFDS-based Context Debloating for Object-Sensitive Pointer Analysis;ACM Transactions on Software Engineering and Methodology;2023-05-27
5. JITfuzz: Coverage-guided Fuzzing for JVM Just-in-Time Compilers;2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE);2023-05