Open64

Open64 is a compiler for the programming languages ​​C , C and Fortran 77 /95, emerged from the MIPSpro compiler of the computer manufacturer Silicon Graphics. Because the compiler is open source available, it was often used for the implementation and improvement of optimization strategies so that it developed into a highly optimizing compiler over time.

Structure and skills

The compiler has five hierarchical levels arranged for the intermediate representation of the source code, in which different optimization methods are used and where put on the respective front ends (GCC for C and C and CraySoft for Fortran ). This intermediate layer is called WHIRL. By this basis, it is possible to optimize the source code using dead code elimination, and a global optimiser interprozeduraler analysis. To allow optimal performance on multi-processor systems, also OpenMP is an integral part of the package.

The Open64 compiler is to produce able to machine code for x86, IA -64, MIPS and ARM.

History

The first cleavage of the MIPSpro compiler, which later formed the basis for Open64 was the Open Research Compiler ( ORC), the development of which was paid by the processor manufacturer Intel to create an optimizing compiler for the Itanium platform. Since this processor architecture was instructed by the radical renunciation of code optimized hardware units heavily on the optimization capabilities of the compiler, the focus of development was in this area. The promotion of this branch by Intel ended 2003. Another important spin-off was the PathScale compiler suite, which, however, was now reunited with the now serviced by HP and the University of Delaware main branch of the Open64 compiler. Today, there are in addition to the official codebase still a very active cleavage, which is funded by the chip manufacturer AMD. There, the main focus is on new optimizations for the Opteron model of the manufacturer.

The compiler has been ported to the Loongson platform and used by Nvidia for the optimization of CUDA C environment.

621561
de