The ART of Sharing Points-to Analysis: Reusing Points-to Analysis Results Safely and Efficiently
Shashin Halalingaiah, Vijay Sundaresan, Daryl Maier, V. Krishna Nandivada
摘要
Data-flow analyses like points-to analysis can vastly improve the precision of other analyses, and enable powerful code optimizations. However, whole-program points-to analysis of large Java programs tends to be expensive – both in terms of time and memory. Consequently, many compilers (both static and JIT) and program-analysis tools tend to employ faster – but more conservative – points-to analyses to improve usability. As an alternative to such trading of precision for performance, various techniques have been proposed to perform precise yet expensive fixed-point points-to analyses ahead of time in a static analyzer, store the results, and then transmit them to independent compilation/program-analysis stages that may need them. However, an underlying concern of safety affects all such techniques – can a compiler (or program analysis tool) trust the points-to analysis results generated by another compiler/tool? In this work, we address this issue of trust in the context of Java, while accounting for the issue of performance. We propose ART : Analysis-Results Representation Template – a novel scheme to efficiently and concisely encode results of flow-sensitive, context-insensitive points-to analysis computed by a static analyzer for use in any independent system that may benefit from such a precise points-to analysis. ART also allows for fast regeneration of the encoded sound analysis results in such systems. Our scheme has two components: (i) a producer that can statically perform expensive points-to analysis and encode the same concisely, (ii) a consumer that, on receiving such encoded results (called art work), can regenerate the points-to analysis results encoded by the art work if it is deemed “safe”. The regeneration scheme completely avoids fixed-point computations and thus can help consumers like static analyzers and JIT compilers to obtain precise points-to information without paying a prohibitively high cost. We demonstrate the usage of ART by implementing a producer (in Soot) and two consumers (in Soot and the Eclipse OpenJ9 JIT compiler). We have evaluated our implementation over various benchmarks from the DaCapo and SPECjvm2008 suites. Our results demonstrate that using ART, a consumer can obtain precise flow-sensitive, context-insensitive points-to analysis results in less than (average) 1% of the time taken by a static analyzer to perform the same analysis, with the storage overhead of ART representing a small fraction of the program size (average around 4%).
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper1
问问它们各自怎么用它它引用的顶会 Paper4
- LiveDroid: identifying and preserving mobile app state in volatile runtime environmentsUmar Farooq, Zhijia Zhao, Manu Sridharan, Iulian NeamtiuOOPSLA 2020 · 被引用 15 次
- A Container-Usage-Pattern-Based Context Debloating Approach for Object-Sensitive Pointer AnalysisDongjie He, Yujiang Gui, Wei Li, Yonggang Tao 等OOPSLA 2023 · 被引用 9 次
- Optimistic Stack Allocation and Dynamic Heapification for Managed RuntimesAditya Anand, Solai Adithya, Swapnil Rustagi, Priyam Seth 等PLDI 2024 · 被引用 4 次
- Synthesizing fine-grained synchronization protocols for implicit monitorsKostas Ferles, Benjamin Sepanski, Rahul Krishnan, James Bornholt 等OOPSLA 2022 · 被引用 2 次
相关 Paper
- Hybrid Inlining: A Framework for Compositional and Context-Sensitive Static AnalysisJiangchao Liu, Jierui Liu, Peng Di, Diyu Wu 等ISSTA 2023 · 被引用 3 次
- Context Sensitivity without Contexts: A Cut-Shortcut Approach to Fast and Precise Pointer AnalysisWenjie Ma, Shengyuan Yang, Tian Tan, Xiaoxing Ma 等PLDI 2023 · 被引用 29 次
- Taking Out the Toxic Trash: Recovering Precision in Mixed Flow-Sensitive Static AnalysesFabian Stemmler, Michael Schwarz, Julian Erhard, Sarah Tilscher 等PLDI 2025 · 被引用 3 次
- Automatic Generation and Reuse of Precise Library Summaries for Object-Sensitive Pointer AnalysisJingbo Lu, Dongjie He, Wei Li, Yaoqing Gao 等ASE 2023 · 被引用 1 次
- The road not taken: exploring alias analysis based optimizations missed by the compilerKhushboo Chitre, Piyus Kedia, Rahul PurandareOOPSLA 2022 · 被引用 13 次
