共享指向分析的 ART 技术(扩展摘要)
编程语言
2024-09-17 v1
摘要
诸如指向分析之类的数据流分析可以极大地提高其他分析的精度,并有助于执行强大的代码优化。然而,大型程序的全局指向分析往往代价高昂——无论是在时间还是内存方面。因此,许多编译器(包括静态和 JIT 编译器)以及程序分析工具倾向于采用更快但更保守的指向分析来提高可用性。作为这种以精度换取性能的替代方案,已经提出了多种技术,旨在静态分析器中提前执行精确但昂贵的定点指向分析,存储结果,然后将它们传输给可能需要这些结果的独立编译/程序分析阶段。然而,一个根本的安全问题影响着所有这些技术——一个编译器(或程序分析工具)能否信任由另一个编译器/工具生成的指向分析结果?在这项工作中,我们在考虑性能效率问题的同时,解决了这个信任问题。我们提出了 ART:分析结果表示模板——一种新颖的方案,用于高效且简洁地编码由静态分析器计算的流敏感、上下文不敏感的指向分析结果,以供任何可能受益于这种高精度指向分析的独立系统使用。我们的方案包含两个组件:(i)一个生成器,可以静态执行昂贵的指向分析并简洁地编码结果。(ii)一个消费者,在接收到此类编码结果后,如果认为安全,可以重新生成由该“艺术品”编码的指向分析结果。我们通过在 Soot 中实现一个生成器和两个消费者(分别在 Soot 和 Eclipse OpenJ9 JIT 编译器中)来演示 ART 的用法。我们使用来自 DaCapo 和 SPECjvm2008 套件的各种基准测试对实现进行了评估。
引用
@article{arxiv.2409.09062,
title = {The ART of Sharing Points-to Analysis (Extended Abstract)},
author = {Shashin Halalingaiah and Vijay Sundaresan and Daryl Maier and V. Krishna Nandivada},
journal= {arXiv preprint arXiv:2409.09062},
year = {2024}
}