【24h】

Scalable propagation-based call graph construction algorithms

机译:可扩展的基于传播的调用图​​构造算法

获取原文

摘要

Propagation-based call graph construction algorithms have been studied intensively in the 199Os, and differ primarily in the number of sets that are used to approximate run-time values of expressions. In practice, algorithms such as RTA that use a single set for the whole program scale well. The scalability of algorithms such as 0-CFA that use one set per expression remains doubtful.In this paper, we investigate the design space between RTA and 0-CFA. We have implemented various novel algorithms in the context of Jax, an application extractor for Java, and shown that they all scale to a 325,000-line program. A key property of these algorithms is that they do not analyze values on the run-time stack, which makes them efficient and easy to implement. Surprisingly, for detecting unreachable methods, the inexpensive RTA algorithm does almost as well as the seemingly more powerful algorithms. However, for determining call sites with a single target, one of our new algorithms obtains the currentbest tradeoff between speed and precision.
机译:基于传播的调用图​​构造算法已在199O中进行了深入研究,并且主要区别在于用于近似表达式运行时值的集合数。在实践中,诸如RTA之类的算法针对整个程序使用单个集合就可以很好地扩展。每个表达式使用一组的0-CFA之类算法的可扩展性仍然值得怀疑。本文研究了RTA和0-CFA之间的设计空间。我们已经在Java的应用程序提取器 Jax 的上下文中实现了各种新颖的算法,并证明它们都可以扩展到325,000行的程序。这些算法的关键特性是它们不分析运行时堆栈上的值,这使它们高效且易于实现。出乎意料的是,对于检测无法访问的方法,廉价的RTA算法的功能几乎和看似更强大的算法一样好。但是,为了确定具有单个目标的呼叫站点,我们的一种新算法在速度和精度之间取得了目前最好的折衷方案。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号