【24h】

Demand-Driven Pointer Analysis

机译:需求驱动指针分析

获取原文

摘要

Known algorithms for pointer analysis are "global" in the sense that they perform an exhaustive analysis of a program or program component. In this paper we introduce a demand-driven approach for pointer analysis. Specifically, we describe a demand-driven flow-insensitive, subset-based, context-insensitive points-to analysis. Given a list of pointer variables (a query), our analysis performs just enough computation to determine the points-to sets for these query variables. Using deductive reachability formulations of both the exhaustive and the demand-driven analyses, we prove that our algorithm is correct. We also show that our analysis is optimal in the sense that it does not do more work than necessary. We illustrate the feasibility and efficiency of our analysis with an implementation of demand-driven points-to analysis for computing the call-graphs of C programs with function pointers. The performance of our system varies substantially across benchmarks - the main factor is how much of the points-to graph must be computed to determine the call-graph. For some benchmarks, only a small part of the points-to graph is needed (e.g povray, emacs and gcc), and here we see more than a 10x speedup. For other benchmarks (e.g. burlap and gimp), we need to compute most (> 95%) of the points-to graph, and here the demand-driven algorithm is considerably slower, because using the demand-driven algorithm is a slow method of computing the full points-to graph.
机译:已知的指针分析算法在对程序或程序组件进行详尽分析的意义上是“全局”的。在本文中,我们介绍了一种需求驱动的指针分析方法。具体来说,我们描述了需求驱动的流程不敏感,基于子集,上下文不敏感的指向分析。给定一个指针变量列表(一个查询),我们的分析仅执行足够的计算以确定这些查询变量的指向集。使用穷举分析和需求驱动分析的演绎可达性公式,我们证明了我们的算法是正确的。我们还表明我们的分析在某种意义上说是最优的,因为它所做的工作并不多于必要。我们通过实现需求驱动点分析来说明使用函数指针计算C程序的调用图的方法的可行性和效率。我们的系统的性能在基准之间存在很大差异-主要因素是必须计算多少点对点图才能确定调用图。对于某些基准测试,仅需要点对点图的一小部分(例如povray,emacs和gcc),在这里,我们看到的加速超过10倍。对于其他基准测试(例如粗麻布和gimp),我们需要计算大部分(> 95%)的点对图,这里需求驱动算法要慢得多,因为使用需求驱动算法是一种较慢的方法。计算完整的点对图。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号