GCC 4.0 macht Programme und deren Entwicklung schneller

GCC nun mit automatischer Vektorisierung für SSE, SSE2 und Altivec

Ein Jahr nach der Veröffentlichung der Version 3.4 gab das GCC-Team nun die Version 4.0 frei. Neben der verbesserten internen Darstellungsform (Tree-SSA) kann die neue Version automatisch Schleifen für SSE und SSE2 der x86- und AMD64-Plattform sowie für Altivec auf PowerPC generieren.

Artikel veröffentlicht am ,

Die jetzt freigegebene Version war ursprünglich als 3.5 geplant, wurde jedoch auf Grund der vielen internen Änderungen und Verbesserungen nach 4.0 umbenannt. Die größte Änderung ist die Verwendung von "Static Single Assignment Trees" für die interne Repräsentation des Codes. Dadurch ließen sich viele Optimierungen verbessern und neue implementieren. Unter den neuen Optimierungen ist auch die automatische Vektorisierung von Schleifen, für die Verwendung von SSE, SSE2 oder Altivec. Einen solchen Automatismus, für bisher eher von Hand zu erzeugende Optimierungen, boten zurzeit ausschließlich kommerzielle Compiler aus dem Hause Intel oder IBM.

Die Tree-SSA-Darstellung hilft jedoch auch in anderen Bereichen, wie dem Zusammenfassen von Gemeinsamkeiten, dem Eliminieren nicht verwendeter Ausdrücke sowie einigen normalen Optimierungsmethoden von Schleifen.

Auch das Starten von Programmen kann durch die neue GCC-Version beschleunigt werden: "-fvisibility-inlines-hidden" markiert in dem ELF-Bibliotheksformat alle "inline-bare"-Funktionen als nicht sichtbar und entfernt diese so aus der finalen Programmdatei. Bei modernem C++-Code werden so ca. 40 Prozent der Symbole entfernt und Programme bis zu 10 Prozent kleiner - und dadurch natürlich schneller geladen.

Im wissenschaftlichen Bereich lang erwartet, wurde der Ersatz des Fortan-77-Frontends, durch eine überarbeitete Version, die auch Fortan 90 und 95 akzeptiert. Der neue "gfortran" ist derzeit jedoch nicht mehr vollständig Fortan-77-konform, die Entwickler wollen in einer späteren Version aber wieder dafür sorgen.

Das Debuggen von optimiertem Code, in dem Code-Fragmente oft stark von der Reihenfolge in der Quelldatei abweichen, können "location lists" verbessern. Durch diese kann der GNU Debugger auch stark optimierten Code wieder das original Listing zuordnen.

Ebenfalls für Entwickler interessant ist, dass bei Abschalten jeglicher Optimierung mit '-O0' das C++-Frontend jetzt schneller ist als in jeder anderen GCC-Version zuvor. Dies kann den Editier-Compile-Zyklus in der Entwicklungsphase stark verkürzen.

Da, wie in jeder neuen GCC-Version, auch wieder ein paar historische, GCC-eigene Spracherweiterungen entfernt wurden, ist davon auszugehen, dass in dem einen oder anderen historisch gewachsenen Code kleine Änderungen vorzunehmen sind, bis er sich wieder mit dem aktuellen GCC übersetzen lässt. Positiv ist, dass solche Änderungen auch die Kompatibilität mit anderen ANSI-konformen Compilern erhöhen.

Eine Übersicht aller Änderungen ist auf der Projekt-Homepage zu finden, hier steht GCC 4.0 auch zum Download bereit. [von René Rebe]

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
Verkaufsverbot
Huawei will 50-Cent-Lizenzgebühr pro AVM-Fritzbox

Huawei hat gerichtlich ein gültiges Verkaufsverbot von Fritzboxen mit Wi-Fi 6 und Wi-Fi 7 durchgesetzt. Es geht um Huaweis Patente für den Standard.

Verkaufsverbot: Huawei will 50-Cent-Lizenzgebühr pro AVM-Fritzbox
Artikel
  1. Elektro-SUV: Porsche macht den Macan deutlich aerodynamischer
    Elektro-SUV
    Porsche macht den Macan deutlich aerodynamischer

    Der vollelektrische Porsche Macan soll "in Kürze" in die Produktion gehen. Dazu hat der Sportwagenhersteller neue Details zu dem SUV genannt.

  2. The Lost Crown im Test: Prince of Persia als super spaßiger Sidescroller
    The Lost Crown im Test
    Prince of Persia als super spaßiger Sidescroller

    Kein Prinz als Held, aber sonst königlich: Prince of Persia - The Lost Crown entpuppt sich im Test als rundherum gut gemachtes Abenteuer.
    Von Peter Steinlechner

  3. Future Racing Cable: Modulares USB-Kabel lädt 240 Watt und überträgt 40 GBit/s
    Future Racing Cable
    Modulares USB-Kabel lädt 240 Watt und überträgt 40 GBit/s

    Auf Indiegogo verspricht der Hersteller, dass kein anderes USB-Kabel mehr gebraucht wird. Schließlich sei das Future Racing Cable vielseitig.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • PS5 + Spider-Man 2 569€ • AMD Ryzen 9 5950X 379€ • Switch-Controller 17,84€ • AOC 27" QHD 165Hz 229€ • MindStar: Gigabyte RTX 4070 Ti 819€ • Google -47% • Steelseries -64% • Corsair -39% • Bose -36% • 3 Spiele für 49€ • Gigabyte 27" QHD 240 Hz 399€ • EA-Spiele -66% [Werbung]
    •  /