c't 5/2016
S. 140
Test
C++-Compiler
Aufmacherbild

Codewandler

Drei aktuelle C++-Compiler im Performancevergleich

Die neue C++-Compiler-Generation hat einiges zu bieten: C++14 fürs Auge und openMP4.0/4.5, Cilk, OpenACC … sowie zahlreiche automatische Optimierungen für die Performance. Alles ist hübsch garniert mit Profilern, Ratgebern und Checkern. Wir haben uns die aktuelle Rasselbande von Microsoft, Intel und GNU mal genauer angeschaut.

Die Compiler – Microsoft Visual Studio 2015, Intel Parallel Studio XE 2016 sowie die GNU Compiler Collection GCC 5.3.0 und ihre jeweiligen Vorgänger – mussten sich auf diversen Systemen bewähren, vor allem auf dem Haswell-EP-Server mit 72 logischen Kernen unter RHEL 7.2 und Windows Server 2012R2, aber auch auf zwei Desktop-Systemen mit Haswell Core i5 (Windows 8.1) und Skylake Core i7-6700 (Windows 10).

Beim Microsoft Visual Studio 2015 wurde das seit Dezember verfügbare Update 1 eingespielt. Das erwies sich aber als recht kontraproduktiv, denn nach der Installation des Updates meckerte der Intel-Compiler, der unter Windows auf Visual Studio angewiesen ist, haufenweise Fehler an. So mochte er kein Attribut [[noreturn]] und kannte auch kein __builtin_huge_val() und ähnliche Dinge mehr. Das von Microsoft neu eingeführte Attribut [[noreturn]] soll anzeigen, dass diese Routine nicht zum Aufrufer zurückkehrt, sondern irgendeinen Abbruch generiert.