Affiliation:
1. INRIA Rocquencourt Domaine de Voluceau - BP 105, 78153 Le Chesnay Cedex, France
Abstract
Escape analysis [27, 14, 5] is a static analysis that determines whether the lifetime of data exceeds its static scope.
The main originality of our escape analysis is that it determines precisely the effect of assignments, which is necessary to apply it to object oriented languages with promising results, whereas previous work [27, 14, 5] applied it to functional languages and were very imprecise on assignments. Our implementation analyses the full Java™ Language.
We have applied our analysis to stack allocation and synchronization elimination. We manage to stack allocate 13% to 95% of data, eliminate more than 20% of synchronizations on most programs (94% and 99% on two examples) and get up to 44% speedup (21% on average). Our detailed experimental study on large programs shows that the improvement comes from the decrease of the garbage collection and allocation times than from improvements on data locality [7], contrary to what happened for ML [5].
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
52 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. Escape from escape analysis of Golang;Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice;2020-06-27
3. Design and Implementation of an Escape Analysis in the Context of Safety-Critical Embedded Systems;ACM Transactions on Embedded Computing Systems;2020-01-31
4. Gerenuk;Proceedings of the 27th ACM Symposium on Operating Systems Principles;2019-10-27
5. A scalable, flow-and-context-sensitive taint analysis of android applications;Journal of Computer Languages;2019-04