首页> 外文会议>Programming languages and systems >Scalable Context-Sensitive Points-to Analysis Using Multi-dimensional Bloom Filters
【24h】

Scalable Context-Sensitive Points-to Analysis Using Multi-dimensional Bloom Filters

机译:使用多维布隆过滤器的可扩展上下文敏感指向分析

获取原文
获取原文并翻译 | 示例

摘要

Context-sensitive points-to analysis is critical for several program optimizations. However, as the number of contexts grows exponentially, storage requirements for the analysis increase tremendously for large programs, making the analysis non-scalable. We propose a scalable flow-insensitive context-sensitive inclusion-based points-to analysis that uses a specially designed multi-dimensional bloom filter to store the points-to information. Two key observations motivate our proposal: (ⅰ) points-to information (between pointer-object and between pointer-pointer) is sparse, and (ⅱ) moving from an exact to an approximate representation of points-to information only leads to reduced precision without affecting correctness of the (may-points-to) analysis. By using an approximate representation a multi-dimensional bloom filter can significantly reduce the memory requirements with a probabilistic bound on loss in precision. Experimental evaluation on SPEC 2000 benchmarks and two large open source programs reveals that with an average storage requirement of 4MB, our approach achieves almost the same precision (98.6%) as the exact implementation. By increasing the average memory to 27MB, it achieves precision upto 99.7% for these benchmarks. Using Mod/Ref analysis as the client, we find that the client analysis is not affected that often even when there is some loss of precision in the points-to representation. We find that the NoModRef percentage is within 2% of the exact analysis while requiring 4MB (maximum 15MB) memory and less than 4 minutes on average for the points-to analysis. Another major advantage of our technique is that it allows to trade off precision for memory usage of the analysis.
机译:上下文相关的指向分析对于几个程序优化至关重要。但是,随着上下文数量的成倍增长,大型程序的分析存储需求急剧增加,从而使分析不可扩展。我们提出了一种可扩展的,对流量不敏感的,基于上下文敏感的,基于包含关系的指向分析,该分析使用了专门设计的多维布隆过滤器来存储指向信息的信息。有两个主要的观察结果激发了我们的建议:(ⅰ)点对信息(在指针对象之间和指针与指针之间)是稀疏的,并且(from)从点对信息的精确表示转换为近似表示只会导致精度降低而不会影响(可能指向)分析的正确性。通过使用近似表示,多维布隆过滤器可以显着减少内存需求,并在精度上造成一定的概率限制。在SPEC 2000基准测试和两个大型开源程序上进行的实验评估表明,平均存储需求为4MB,我们的方法可实现与实际实现几乎相同的精度(98.6%)。通过将平均内存增加到27MB,对于这些基准,它可以达到高达99.7%的精度。使用Mod / Ref分析作为客户端,我们发现,即使指向表示的精度有所损失,客户端分析也不会经常受到影响。我们发现NoModRef百分比在精确分析的2%以内,同时需要4MB(最大15MB)内存,并且要点分析的平均时间少于4分钟。我们的技术的另一个主要优点是,它可以权衡精度以用于分析的内存使用。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号