Open64
# Open64

Open64 ist ein Compiler für die Programmiersprachen C++, C und Fortran 77/95, der aus dem MIPSPro-Compiler des Computer-Herstellers Silicon Graphics entstanden ist. Da der Compiler quelloffen verfügbar ist, wurde er oft zur Implementierung und Verbesserung von Optimierungsstrategien eingesetzt, so dass er sich im Laufe der Zeit zu einem stark optimierenden Compiler entwickelte.

## Struktur und Fähigkeiten

Der Compiler besitzt 5 hierarchisch angeordnete Ebenen für die Zwischenrepräsentation des Quellcodes, in denen jeweils verschiedene Optimierungsverfahren zum Einsatz kommen und auf denen die jeweiligen Frontends (GCC für C++ und C und CraySoft für Fortran) aufsetzen. Diese Zwischenschicht trägt den Namen WHIRL. Durch diese Basis ist es möglich, den Quellcode mittels dead code elimination, interprozeduraler Analyse und einem globalen Optimierer zu optimieren. Um optimale Leistung auf Mehrprozessorsystemen zu ermöglichen, ist zudem OpenMP integraler Bestandteil des Pakets.
Der Open64-Compiler ist in der Lage, Maschinencode für x86, IA-64, MIPS und ARM zu erzeugen.

## Geschichte

Die erste Abspaltung des MIPSPro-Compilers, die später die Grundlage für Open64 bildete, war der Open Research Compiler (ORC), dessen Entwicklung vom Prozessorhersteller Intel bezahlt wurde, um einen optimierenden Compiler für die Itanium-Plattform zu schaffen. Da diese Prozessorarchitektur durch den radikalen Verzicht auf Code-optimierende Hardware-Einheiten stark auf die Optimierungsfähigkeiten des Compilers angewiesen war, lag der Schwerpunkt der Entwicklung in diesem Bereich. Die Förderung dieses Zweigs durch Intel endete 2003. Eine andere wichtige Abspaltung war die PathScale Compiler Suite, die allerdings inzwischen wieder mit dem mittlerweile von HP und der University of Delaware betreuten Hauptzweig des Open64-Compilers vereinigt wurde. Heute gibt es zusätzlich zur offiziellen Codebasis noch eine sehr aktive Abspaltung, welche vom Chiphersteller AMD finanziert wird. Dort liegt das Hauptaugenmerk auf neuen Optimierungen für die Opteron-Modellreihe des Herstellers.
Außerdem wurde der Compiler auf die Loongson-Plattform portiert und von Nvidia zur Optimierung der CUDA-C-Umgebung eingesetzt.