Efficiently Building the Gated Single Assignment Form in Codes with Pointers in Modern Optimizing Compilers
Efficiently Building the Gated Single Assignment Form in Codes with Pointers in Modern Optimizing Compilers
复制标题
在现代优化编译器中使用指针有效构建代码中的门控单赋值形式
DOI:
--
复制
发表时间:
2008
期刊:
影响因子:
--
通讯作者:
J. Touriño
中科院分区:
文献类型:
--
作者:
Manuel Arenaz;Pedro Amoedo;J. Touriño
Understanding program behavior is at the foundation of program optimization. Techniques for automatic recognition of program constructs characterize the behavior of code fragments, providing compilers with valuable information to guide code optimizations. The XARK compiler framework provides a complete, robust and extensible solution to the automatic recognition problem that was shown to be effective to characterize the behavior of Fortran77 applications. Our goal is to migrate XARK to the GNU GCC compiler in order to widen its scope of application to program constructs (e.g., pointers, objects) supported by other programming languages (e.g., Fortran90/95, C/C++, Java). The first step towards this goal is the translation of the GCC intermediate representation into the Gated Single Assignment (GSA) form, an extension of Static Single Assignment (SSA) that captures data/control dependences and reaching definition information for scalar and array variables. This paper presents a simple and fast GSA construction algorithm that takes advantage of the infrastructure for building the SSA form available in modern optimizing compilers. An implementation on top of the GIMPLE-SSA intermediate representation of GCC is described and evaluated in terms of memory consumption and execution time using the UTDSP, Perfect Club and SPEC CPU2000 benchmark suites.