Zum Hauptinhalt Zur Navigation

Compiler Collection: GCC 4.9 verbessert Optimierung

Die veröffentlichte Version 4.9 der GNU Compiler Collection enthält diverse Optimierungen des Codes. Außerdem werden OpenMP 4.0 und Funktionen des kommenden C++14-Standards unterstützt.
/ Sebastian Grüner
4 Kommentare News folgen (öffnet im neuen Fenster)
In GCC 4.9 sollen sich C- und C++-Code noch besser debuggen lassen. (Bild: GCC)
In GCC 4.9 sollen sich C- und C++-Code noch besser debuggen lassen. Bild: GCC

Die GNU Compiler Collection (GCC) 4.9 ist erschienen(öffnet im neuen Fenster) . Die Sammlung vereint einige neue Funktionen, die vor allem den Optimierungsprozess während des Kompilierens betreffen. So ist der Address Sanitizer, den es bereits für x86- beziehungsweise x86_64-Systeme gibt, nun auch für ARM verfügbar.

Neu ist der aus LLVM hervorgegangene Undefined Behavior Sanitizer (UBSan), mit dem sich C- und C++-Code in Echtzeit auf vielfältige Fehler überprüfen lässt, etwa Ganzzahlenüberläufe. Derartige Fehler sind oft schwierig aufzuspüren, da eine Anwendung ohne Fehlermeldung abstürzt oder gar weiterläuft. UBSan lässt sich während des Kompilierens über den Schalter -fsanitize=undefined aktivieren.

Die in GCC vorhandenen Link Time Optimizations (LTOs) wurden ebenfalls überarbeitet. Die verschiedenen Änderungen sorgen unter anderem dafür, dass die zum Kompilieren benötigte Zeit verringert wird, ebenso wie die Speicherbelegung. Als Beispiel verweist das Team auf einen Build des Firefox mit aktivierten Debug-Symbolen, wobei der benötigte Speicher von 15 GByte auf 3,5 GByte reduziert worden sein soll.

Sprachunterstützung

Die wohl wichtigste Neuerung für die C++-Standardbibliothek ist die Unterstützung des im C++11-Standard festgelegten Umgangs mit regulären Ausdrücken. Außerdem erhielt das C++-Frontend Erweiterungen, die für C++14 vorgesehen sind, etwa Zahltrennungszeichen für besonders lange Zahlen.

Neu in GCC 4.9 ist auch die Unterstützung der Spezifikation OpenMP 4.0. Mit dem Schalter -fopenmp-simd lassen sich ausschließlich die SIMD-Anweisungen verwenden, andere Anweisungen aus OpenMP werden dabei ignoriert. Standardmäßig wird nun Ada 2012 statt wie bisher Ada 2005 verwendet, und Fortran 2003 kann ab sofort mit Finalization benutzt werden, das bereits von anderen Fortran-Compilern bereitgestellt wird.

Eine Liste weiterer Änderungen(öffnet im neuen Fenster) hat das Entwickler-Team zusammengetragen. Der Quellcode steht über die FTP-Server des GNU-Projektes(öffnet im neuen Fenster) zum Download bereit.


Relevante Themen