A Container-Usage-Pattern-Based Context Debloating Approach for Object-Sensitive Pointer Analysis

Proceedings of the ACM on Programming Languages(2023)

引用 0|浏览14
暂无评分
摘要
In this paper, we introduce DEBLOATERX, a new approach for automatically identifying context-independent objects to debloat contexts in object-sensitive pointer analysis (kappa obj). Object sensitivity achieves high precision, but its context construction mechanism combines objects with their contexts indiscriminately. This leads to a combinatorial explosion of contexts in large programs, resulting in inefficiency. Previous research has proposed a context-debloating approach that inhibits a pre-selected set of context-independent objects from forming new contexts, improving the efficiency of kappa obj. However, this earlier context-debloating approach under-approximates the set of context-independent objects identified, limiting performance speedups. We introduce a novel context-debloating pre-analysis approach that identifies objects as context-dependent only when they are potentially precision-critical to kappa obj based on three general container-usage patterns. Our research finds that objects containing no fields of "abstract" (i.e., open) types can be analyzed context-insensitively with negligible precision loss in real-world applications. We provide clear rules and efficient algorithms to recognize these patterns, selecting more context-independent objects for better debloating. We have implemented DEBLOATERX in the Qilin framework and will release it as an open-source tool. Our experimental results on 12 standard Java benchmarks and real-world programs show that DEBLOATERX selects 92.4% of objects to be context-independent on average, enabling kappa obj to run significantly faster (an average of 19.3x when kappa = 2 and 150.2x when kappa = 3) and scale up to 8 more programs when kappa = 3, with only a negligible loss of precision (less than 0.2%). Compared to state-of-the-art alternative pre-analyses in accelerating kappa obj, DEBLOATERX outperforms ZIPPER significantly in both precision and efficiency, and outperforms CONCH (the earlier context-debloating approach) in efficiency substantially while achieving nearly the same precision.
更多
查看译文
关键词
container usage patterns,context debloating,pointer analysis
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要