节点文献

考虑指针别名的过程间分析技术研究

Study on Inter-Procedural Analysis Techniques in the Presence of Pointer Aliasing

【作者】 刘强

【导师】 李国杰; 张兆庆;

【作者基本信息】 中国科学院研究生院(计算技术研究所) , 计算机体系结构, 1998, 博士

【摘要】 指针分析是近年来国际上编译技术领域中的一个研究热点。C语言程序中指针的广泛使用严重地影响了数据流分析的精确程度,从而严重地影响了程序优化和程序变换的效果。近年来,新兴体系结构的设计更加依赖于编译技术的支持,指针对代码效率的影响也更加严重。指针分析从而成为现代编译技术中的一个重要组成部分。 与传统的分析方法相比,本文采用了一个新的过程间策略来处理指针问题。我们的过程间策略基于我们对C语言中名字空间的抽象—参数化名字空间。由于参数化名字空间中程序上下文的数目是有限的,因而我们以此为基础,发展了一个上下文敏感的过程间指针分析算法。该算法一方面是上下文敏感的,另一方面由于有效地利用了参数化空间内的启发式因素,因而是高效的。 基于参数化空间的抽象和指针分析的结果,我们开发了一个过程间分析的统一框架,该框架将基本的过程间问题(指针分析、调用图求解、过程间MOD分析和过程间到达-定值分析)有机地结合在一起,从而对C语言过程间分析问题的有效解决作了有意义的实践。 本文的工作结果已经应用到一个实际的SIMD芯片的优化/并行化编译器中。对该编译器的使用和测试证明了我们的过程间分析框架是实际可用的,这使本文的工作超出了纯粹的学术研究的范畴。

【Abstract】 Pointer analysis is a field of active research in recent years in compiler technology. The extensive use of pointers in languages such as C greatly affects the accuracy of data flow analysis which further affects the result of program optimization and program transformation. As the emerging computer architecture design requires more supports from compilers to exploit the ample hardware resources, the affection of pointer in the object code efficiency is more severe. Pointer analysis is hence becoming one of the most important components in modern compiler technology.Comparing with the traditional analysis method, this paper adopts a new inter-procedural strategy to handle pointers. Our inter-procedural strategy is based on the abstraction of C’s parameterized name space. We developed a context-sensitive inter-procedural pointer analysis algorithm because the program contexts are limit in the parameterized name space. One one hand, the algorithm is context-sensitive and provides very precise result, on the other hand, the algorithm is very efficient because we carefully apply heuristic techniques.Based on the result of pointer analysis and the abstraction of parameterized name space, we developed a unified inter-procedural framework which integrated the basic inter-procedural problems include pointer analysis, call graph construction, inter-procedural MOD analysis and Reach Definition analysis construction. This framework provides a promising efficient method for solving C’s inter-procedural problems.The result of this research has been applied to a real optimizing and parallelizing compiler for a SIMD chip. The benchmarking and actual use of this compiler proves that our inter-procedural analysis is practical and efficient. This makes the work in this paper beyond pure academic research.

节点文献中: 

本文链接的文献网络图示:

本文的引文网络