中文

混合内联:一种组合式且上下文敏感的静态分析框架

计算机科学中的逻辑 2022-10-27 v1

摘要

上下文敏感性对于实现过程间静态分析的精度至关重要。为了实现(完全)上下文敏感,自顶向下分析需要在每个调用点完全内联被调用者的所有语句,从而导致语句爆炸。组合式分析内联被调用者的摘要,具有良好的可扩展性但通常会损失精度,因为它不是严格上下文敏感的。我们提出了一种用于静态分析的组合式且严格上下文敏感的框架。该框架基于一个关键观察:组合式静态分析通常仅在一些需要进行上下文敏感分析的关键语句上损失精度。我们的方法混合内联了每个被调用者的关键语句和非关键语句的摘要,从而避免了对非关键语句的重复分析。此外,我们的分析通过在累积的调用上下文足够时停止传播关键语句,对关键语句进行惰性摘要。混合内联可以与上下文敏感的自顶向下分析一样精确。我们基于该框架设计并实现了一个指针分析。它可以在几分钟内分析来自 Dacapo 基准套件和工业界的大型 Java 程序。在我们的评估中,与上下文不敏感分析相比,混合内联在 Dacapo 和工业应用上仅分别带来了 65% 和 1% 的额外时间开销。

关键词

引用

@article{arxiv.2210.14436,
  title  = {Hybrid Inlining: A Compositional and Context Sensitive Static Analysis Framework},
  author = {Jiangchao Liu and Jierui Liu and Peng Di and Diyu Wu and Hengjie Zheng and Alex Liu and Jingling Xue},
  journal= {arXiv preprint arXiv:2210.14436},
  year   = {2022}
}