- Open64
-
Open64 Entwickler Open64 OSG und Beitragende Aktuelle Version 5.0
(10. November 2011)Betriebssystem Unix, GNU/Linux Kategorie Compiler Lizenz GPL (Freie Software) Deutschsprachig nein www.open64.net Open64 ist ein Compiler für die Programmiersprachen C/C++ und Fortran 77/95. Er ist aus dem MIPSPro Compiler von SGI entstanden. Da er quelloffen verfügbar ist, wurde er im Laufe der Zeit oft als Entwicklungsgrundlage für verschiedene Optimierungsstrategien eingesetzt und zählt daher zu den traditionell stark optimierenden Compilern.
Inhaltsverzeichnis
Geschichte
Die erste Abspaltung des MIPSPro-Compilers, welche später die Codebasis für Open64 bildete, war der Open Research Compiler (ORC), dessen Entwicklung von Intel bezahlt wurde, um einen optimierenden Compiler für die Itanium-Plattform zu schaffen. Da diese Prozessorarchitektur durch den radikalen Verzicht auf codeoptimierende Hardwareeinheiten 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, welche allerdings inzwischen wieder mit dem, mittlerweile von HP und der University of Delaware betreuten, Hauptzweig des Open64-Compilers vereinigt wurde. Heute existiert 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[1] und von Nvidia zur Optimierung der CUDA C Umgebung eingesetzt.[2]
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 welche die jeweiligen Frontends (GCC für C/C++ und CraySoft für Fortran) aufgesetzt sind. Diese Zwischenschicht trägt den Namen WHIRL. Durch diese leistungsfähige Basis ist es möglich den Quellcode mittels dead code elimination, interprocedural analysis und einem global optimizer zu optimieren. Um optimale Performance auf Multicoresystemen zu bieten, 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.
Quellen
- ↑ Open64 on MIPS: porting and enhancing Open64 for Loongson II (PDF-Datei)
- ↑ NVidias Erfahrungen mit dem Open64 Compiler
Weblinks
Kategorien:- Freies Programmierwerkzeug
- Programmiersprache C
- Programmiersprache C++
Wikimedia Foundation.