arXivDaily arXiv每日学术速递 周一至周五更新
arXiv cs/0001009cs.PL
收藏

分形符号分析

Fractal Symbolic Analysis

Nikolay Mateev, Vijay Menon, Keshav Pingali

摘要:

重构编译器使用依赖性分析来证明程序的含义不会因转换而改变。依赖分析的一个众所周知的局限性是它只检查语句读写的内存位置,而不假设语句中的操作有任何特定的解释。利用这些操作的语义可以使用更广泛的转换集,并且对于优化重要代码(如使用旋转的LU因子分解)至关重要。程序的符号执行使得能够利用这样的语义属性,但是除了最简单的程序之外,它对所有程序都是难以处理的。在本文中,我们提出了一种新的形式的符号分析用于重组编译器。分形符号分析通过反复简化这些程序来比较程序及其转换版本,直到符号分析变得易于处理,确保简化程序的平等足以保证原始程序的平等。我们提出了一个分形符号分析的原型实现,并展示了如何使用它来优化LU分解与旋转的缓存性能。

英文摘要:

Restructuring compilers use dependence analysis to prove that the meaning of a program is not changed by a transformation. A well-known limitation of dependence analysis is that it examines only the memory locations read and written by a statement, and does not assume any particular interpretation for the operations in that statement. Exploiting the semantics of these operations enables a wider set of transformations to be used, and is critical for optimizing important codes such as LU factorization with pivoting. Symbolic execution of programs enables the exploitation of such semantic properties, but it is intractable for all but the simplest programs. In this paper, we propose a new form of symbolic analysis for use in restructuring compilers. Fractal symbolic analysis compares a program and its transformed version by repeatedly simplifying these programs until symbolic analysis becomes tractable, ensuring that equality of simplified programs is sufficient to guarantee equality of the original programs. We present a prototype implementation of fractal symbolic analysis, and show how it can be used to optimize the cache performance of LU factorization with pivoting.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑