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
期刊:
European Conference on Parallel Processing
影响因子:
--
通讯作者:
J. Touriño
J. Touriño
中科院分区:
--
文献类型:
--
作者:
Manuel Arenaz;Pedro Amoedo;J. Touriño

文献摘要

被引文献

相似文献

了解程序行为是计划优化的基础。自动识别程序结构的技术表征了代码片段的行为,为编译器提供了有价值的信息来指导代码优化。 XARK编译器框架为自动识别问题提供了完整,健壮且可扩展的解决方案,该解决方案被证明可以有效地表征Fortran77应用程序的行为。我们的目标是将XARK迁移到GNU GCC编译器,以扩大其对程序构造的应用范围(例如,指示器,对象),并由其他编程语言支持(例如Fortran90/95,C/C ++,Java)。朝着该目标的第一步是将GCC中间表示形式转换为门控单分配(GSA)表单,这是静态单分配(SSA)的扩展,该分配(SSA)捕获数据/控制依赖性并触及标量和数组变量的定义信息。本文提出了一种简单而快速的GSA构造算法,该算法利用基础架构来构建现代优化编译器中可用的SSA形式。使用UTDSP,Perfect Club和Spec CPU2000基准套件来描述和评估GCC的Gimple-SSA中间表示的实现。
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.