Login
Newsletter
Werbung

Fr, 22. April 2005, 08:18

Software::Entwicklung

GCC 4.0.0 freigegeben

Genau ein Jahr nach GCC 3.4.0 hat das GCC-Projekt Version 4.0.0 des für viele Plattformen verfügbaren Compilers freigegeben.

Vorrangiges Ziel dieser Version ist es, eine bessere Optimierungs-Infrastruktur aufzubauen, die die Erzeugung schnelleren Codes erlaubt. Daher gibt es im Unterschied zu früheren Veröffentlichungen wenige inkompatible Änderungen. Eine wichtige Änderung ist, daß Location Lists erzeugt werden, wenn man zugleich mit Debugging- und Optimierungsoptionen übersetzt. Um solche Programme zu debuggen, ist GDB 6.1 oder neuer erforderlich, ältere Versionen stürzen ab.

Andere Änderungen betreffen spezielle Kommandozeilen-Optionen, spezifische Architekturen und die Fehlermeldungen.

GCC 4.0.0 enthält einen neu implementierten Optimierungsrahmen, genannt TreeSSA (static single assignment), der es ermöglicht, teilweise dramatisch schnelleren Code zu erzeugen. Noch wird er allerdings nicht vollständig ausgenutzt, da er noch relativ am Anfang seiner Entwicklung steht. Dennoch wirken sich die Verbesserungen bereits jetzt aus, besonders bei C++ können sie erheblich ausfallen. Bei einer Compilierung von C++ ohne Optimierung ist der Compiler zudem bis zu 25% schneller als GCC 3.4.

Weitere Verbesserungen finden sich auch in den Frontends von Fortran, Java und Ada. Das Fortran-Frontend wurde endlich um die Unterstützung von Fortran 90 und Fortran 95 erweitert.

Ein neuer Optimierungsmechanismus mit dem Namen »skalare Ersetzung und Aggregation« kann nun Datenstrukturen, die größere Teile des gesamten Quellcodes ausmachen, identifizieren. Diese Objekte kann GCC in Teile zerlegen und komponentenweise in den schnelleren Cache-Speicher schreiben, statt ihn wie bisher im trägeren Hauptspeicher abzulegen. Dieses neue Feature soll GCC die Fähigkeit geben, das Gesamtbild eines Programmes zu erfassen. Bislang konnten die Vorgängerversionen bis 3.4 nur kleine, lokale Teile des Programmes optimieren.

Für GCC 4.1 ist schon ein weiterer Optimierungsmechanismus »autovectorization« angekündigt, der auf eine Optimierung von Prozessor-Operationen zielt. Dieses Feature findet Bereiche im Quellcode, in denen einzelne Instruktionen auf multiple Datenelemente angewendet werden können, besonders nützlich für die Entwicklungsbereiche Video-Spiele und Supercomputing.

Der Quellcode von GCC 4.0.0 kann von zahlreichen Mirror-Servern heruntergeladen werden.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung