Open64

From Wikipedia, the free encyclopedia

Open64 is an open source, optimizing compiler for the Intel IA-64 (Itanium), AMD Opteron and Intel IA-32e architecture. It derives from the SGI compilers for the MIPS R10000 processor. It was released under the GPL in 2000, and now mostly serves as a research platform for compiler and computer architecture research groups. Open64 is licensed under the GPL. Open64 supports Fortran 77/95 and C/C++, as well as the shared memory programming model OpenMP. It can conduct high-quality interprocedural analysis, data flow analysis, data dependence analysis and array region analysis.

Contents

[edit] The Infrastructure

Its major components are the frontend for C/C++ (using gcc) and Fortran 77/90 (using the CraySoft front-end and libraries), Interprocedural analysis (IPA), loop nest optimizer (LNO), global optimizer (WOPT), and code generator (CG). Despite being initially written for a single computer architecture, Open64 has proven that it can generate efficient code for CISC, RISC, and VLIW architectures, including MIPS, x86, IA-64, ARM, and others.

[edit] IR

A hierarchical intermediate representation (IR) with 5 main levels is used in this compiler to serve as the common interface among all the frontend and backend components. This IR is named WHIRL.

[edit] Versions

This compiler exists in many forks, each of which has different features and limitations. The "classic" Open64 branch is the Open Research Compiler (ORC), which produces code only for the Itanium (ia64), and was funded by Intel. The ORC effort ended in 2003. Other important branches include QLogic Corporation's PathScale Compiler Suite, a production-quality compiler for x86 and MIPS, and compilers from Tensilica. The current official branch is managed by Hewlett Packard and the University of Delaware. This effort has merged the ORC and QLogic contribution into a single branch.

[edit] External links

Languages