一句话:提出 Conch,通过近似对象上下文依赖的线性条件精简对象敏感指针分析的调用上下文,在几乎不损失精度下大幅加速。
对象敏感指针分析通过方法的接收者对象区分调用上下文,但会导致上下文数量膨胀,分析开销巨大。本文提出 Conch,用三条线性可验证的条件近似对象成为 context-dependent 的两个必要条件,这些条件对真实面向对象程序几乎总是必要。为实现该思路,作者引入基于 IFDS 的对象可达性推理算法。在 12 个 Java 程序上对两个代表性对象敏感指针分析进行上下文精简,Conch 使两个基线平均加速 3.1 倍,最高 15.9 倍,并额外可扩展分析 7 个程序,而精度损失小于 0.1%。
We Introduce a new approach, Conch, for debloating contexts for all the object-sensitive pointer analysis algorithms developed for object-oriented languages, where the calling contexts of a method are distinguished by its receiver objects. Our key insight is to approximate a recently proposed set of two necessary conditions for an object to be context-sensitive, i.e., context-dependent (whose precise verification is undecidable) with a set of three linearly verifiable conditions (in terms of the number of statements in the program) that are almost always necessary for real-world object-oriented applications, based on three key observations regarding context-dependability for their objects used. To create a practical implementation, we introduce a new IFDS-based algorithm for reasoning about object reachability in a program. By debloating contexts for two representative object-sensitive pointer analyses applied to a set of 12 representative Java programs, Conch can speed up the two baselines together substantially (3.1x on average with a maximum of 15.9x) and analyze 7 more programs scalably, but at only a negligible loss of precision (less than 0.1%).
DOI 原文 ·
@inproceedings{paperbot6497,
title = {Context Debloating for Object-Sensitive Pointer Analysis},
author = {Dongjie He and Jingbo Lu and Jingling Xue},
booktitle = {ASE},
year = {2021},
doi = {10.1109/ase51524.2021.9678880}
}