期刊文献+

激进域敏感基于合并的指针分析 被引量:11

An Aggressively Field-Sensitive Unification-Based Pointer Analysis
下载PDF
导出
摘要 指针分析是静态程序分析的基础,指针分析的精度直接影响后续的程序分析和优化.域敏感性用来描述指针分析是否需要区分结构体对象的不同域成员.文中提出一种激进的基于合并的域敏感指针分析方法,利用目标机器模型中的数据布局信息进行高层分析,使用基地址和偏移的组合来激进地表示一个结构体域成员以能更精确地区分结构体的不同域成员.文中还对原有类型推导规则做了重要改进,尽量避免在合并类型变量时造成的精度损失.为了保证新类型推导规则的正确性,方法将所有的结构体赋值操作转换成对每个结构体成员的赋值操作.大量实验数据表明,该方法分析精度显著高于以往方法而运行开销几乎相当.该方法还将域成员的激进表示集成至编译器的中间表示中以获得可移植性. Pointer analysis is the basis of most other static program analyses for C programming language. The precision of pointer analysis is crucial to optimizing compilers and software productivity tools. Field-sensitivity is used to describe whether a pointer analysis needs to distinguish different field members. Field-insensitive pointer analysis considers all fields of one structural object as the same object. On the contrary, field-sensitive pointer analysis considers different fields as different objects. This paper proposes an aggressively field-sensitive unification-based pointer analysis. Different from existed methods, the method takes target machine architecture into con- sider in the phase of high-level analysis in order to precisely distinguish fields of structure objects. In the method, a field of a structural object is aggressively represented by a pair of offset from its base structure and size of its own data type. The original inference system is improved to avoid the loss of precision due to joining type variables. All structural memory operations are flattened to a series of scalar memory operations based on the target machine information to guarantee the correctness of type inference system. Lots of experiments indicate that the new method is more precise than the existed method while maintaining almost the same efficiency. Furthermore, the method is portable since the aggressive field representation have been implemented on the inter- mediate representation of the authors' compiler.
出处 《计算机学报》 EI CSCD 北大核心 2009年第9期1722-1735,共14页 Chinese Journal of Computers
基金 国家"八六三"高技术研究发展计划项目基金"以编译技术为支撑的高可靠软件开发工具与环境"(2008AA01Z115)资助~~
关键词 域敏感的 基于合并的 Steensgaard风格 指针分析 别名分析 field-sensitive unification-based Steensgaard-style pointer analysis alias analysis
  • 相关文献

参考文献12

  • 1Ghiya R, Lavery D, Sehr D. On the importance of points-to analysis and other memory disambiguation methods for C programs//Proeeedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation. Snowbird, Utah, United States, 2001:47-58.
  • 2Andersen L O. Program analysis and specialization for the C programming language [Ph. D. dissertation]. University of Copenhagen, DIKU, 1994.
  • 3Steensgaard B. Points-to analysis in almost linear time//Proceedings of the 23rd ACM SIGPLAN SIGACT Symposium on Principles of Programming Languages. St. Petersburg Beach, Florida, United States, 1996:32-41.
  • 4Hardekopf B, Lin C. The ant and the grasshopper: Fast and accurate pointer analysis for millions of lines of code//Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation. San Diego, California, USA, 2007:290-299.
  • 5Pearce D J, Kelly P H J, Hankin C. Efficient field-sensitive pointer analysis of C. ACM Transactions on Programming Languages and Systems (TOPLAS), 2007, 30(1) : 4.
  • 6Pereira F M Q, Berlin D. Wave propagation and deep propa- gation for pointer analysis//Proceedlngs of the 7th Annual IEEE/ACM International Symposium on Code Generation and Optimization. Seattle, WA, USA, 2009.. 126 135.
  • 7Steensgaard B. Points-to analysis by type inference of programs with structures and unions//Proceedings of the 6th International Conference on Compiler Construction. London. UK: Springer Verlag, 1996:136-150.
  • 8Das M. Unification-based pointer analysis with directional assignments//Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation. Vancouver, British Columbia, Canada, 2000:35-46.
  • 9Fahndrich M, Rehof J, Das M. Scalable context-sensitive flow analysis using instantiation constraints//Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation. Vancouver, British Columbia, Canada, 2000:253-263.
  • 10Yong S H, Horwitz S, Reps T. Pointer analysis for programs with structures and casting//Proceedings of the ACM SIGPLAN 1999 Conference on Programming Language Design and Implementation. Atlanta, Georgia, United States, 1999, 91-103.

同被引文献210

  • 1张明军,罗军.缓冲区溢出静态分析中的指针分析算法[J].计算机工程,2005,31(18):41-43. 被引量:4
  • 2张威,卢庆龄,李梅,宫云战.基于指针分析的内存泄露故障测试方法研究[J].计算机应用研究,2006,23(10):22-24. 被引量:7
  • 3张焕国,罗捷,金刚,朱智强,余发江,严飞.可信计算研究进展[J].武汉大学学报(理学版),2006,52(5):513-518. 被引量:114
  • 4吴圣宁,李思昆.多媒体处理器的SIMD代码生成[J].计算机科学,2007,34(7):268-270. 被引量:2
  • 5Hind M. Pointer analysis:Haven't we solved this problem yet?//Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program Analysis for Software Tools and Engineering. Snowbird, Utah, USA, 2001:54-61.
  • 6Hind M, Pioli A. Which pointer analysis should I use?//Proceedings of the 2000 ACM SIGSOFT International Symposi um on Software Testing and Analysis. Portland, Oregon USA, 2000:113-123.
  • 7Ryder B G. Dimensions of precision in reference analysis of object-oriented programming languages//Proceedings of the 12th International Conference on Compiler Construction. Warsaw, Poland, 2003:126-137.
  • 8Tarjan R. Depth-first search and linear graph algorithm. SIAM Journal on Computing, 1972, 1(2) : 146-160.
  • 9Nuutila E, Soisalon-Soininen E. On finding the strongly connected components in a directed graph. Information Processing Letters, 1993, 49(1) : 9-14.
  • 10Faihndrich M, Foster J S, Su Z, Aiken A. Partial online cycle elimination in inclusion constraint graphs. ACM SIGPLAN Notices, 1998, 33(5): 85-96.

引证文献11

二级引证文献25

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部