GNU - logo
Jakub Jelinek ogłosił dostępność GCC 5.1, zestawu kompilatorów do różnych języków programowania.

Zmiany, jakie zaszły:

  • Kompilator GCC C otrzymał domyślny standard GNU11 (C11), zamiast starego GNU89 (C89).
  • Pojawiło się sporo zmian międzyproceduralnych, jak: optymalizacja wirtualnych tabel, wykrywanie i optymalizacja zmiennych tylko do odczytu i wiele więcej
  • Zmniejszono zużycie pamięci i czas linkowania, podczas włączonej optymalizacji w czasie linkowania (LTO)
  • Dodano pełne wsparcie dla OpenMP 4.0, w językach C, C++ i Fortran. Zaimplementowano wstępną obsługę układów Intel Xeon Phi
  • GCC C i C++ otrzymały wsparcie dla współbieżnego interfejsu programowania Intel Cilk Plus
  • Dodano dwie procedury preprocesora: _has_include i _has_include_next, które to dodają pliki nagłówkowe plików, w momencie jeżeli są one dostępne w systemie
  • Pojawiło się sporo nowości z C++14
  • Biblioteka libstdc++ posiada pełne wsparcie dla C++11 i eksperymentalną obsługę C++14
  • Dodano pełne wsparcie dla języka Go 1.4.2
  • Dodano wstępne wsparcie dla kompilacji Just-In-Time (JIT), poprzez nową bibliotekę libgccjit
  • Udoskonalono generowanie kodu architektury AArch64 dla procesorów Cortex-A57 i A53. Dodano także wsparcie dla procesorów: ARM Cortex-A72, Cavium ThunderX i Applied Micro X-Gene 1
  • Dodano wsparcie dla instrukcji AVX-512, które będą dostępne w procesorach serwerowych Intel Skylake
  • Dodano wsparcie dla architektur MIPS Release 3, Release 5 i Release 6. Prócz tego pojawiła się obsługa procesorów Cavium Octeon 3 i Imagination P5600
  • System DragonFlyBSD wspiera w pełni GCC

  • Jakub Konieczny

    GNU11 dotyczy języka C11, nie C++11, gcc w domyśle jest kompilatorem C, nie C++, od którego jest g++.

  • programista

    Ciekawe jak z wydajnością programów skompilowanych gcc5.1 w porównaniu do starszych wersji gcc oraz do intel c++ i ms vs c++? Robiliście jakieś testy? Który kompilator generuje najszybszy kod?

    • Jakub Konieczny

      Mam zamiar to zmierzyć w ramach projektu na studia. Ostatni mój test („Benchmark kompilatorów”) nie wyłonił jednoznacznego zwycięzcy. Może VC++ też zrobię,
      W tej chwili interesuje mnie wydajność JITa.

    • Roman

      Wszystkie kompilatory są wystarczająco wydajne. Problem polega na tym, że są wydajne w operacjach skalarnych. Natomiast wektory i wielowątkowość leży i kwiczy. Chyba, że programista sam się tym zajmie. A w tych cechach znajduje się największy wzrost wydajności.
      Nie wspominając o tym, że większość programistów C++ nie potrafi dziś programować wydajnych programów z uwzględnieniem cache.

  • marcinsud

    Czekamy na jądra superzoptymalizowane tym kompilatorem o niebotycznych przyrostach wydajności w porównaniu do poprzedniego kompilatora ;)