Kompilator GCC 10.1 jest tutaj i to są jego główne nowości

Po roku rozwoju ukazało się wydanie nowej wersji z wolnego zestawu Kompilatory GCC 10.1, jest to pierwsze znaczące wydanie w nowej gałęzi GCC 10.x.

Zgodnie z nowym schematem numeracji wersji, w procesie rozwoju wykorzystano wersję 10.0 i na krótko przed wydaniem GCC 10.1 gałąź GCC 11.0 była już rozgałęziona, na podstawie której zostanie utworzona kolejna wersja. znaczenie GCC 11.1.

Dla tych, którzy nie są zaznajomieni z GCC (GNU Compiler Collection), powinniście wiedzieć, że eTo jest zestaw kompilatorów stworzonych przez projekt GNU, jest oprogramowaniem wolnym i jest rozprowadzane przez Free Software Foundation (FSF) na podstawie ogólnej licencji publicznej GPL.

Te kompilatory są szeroko stosowane w większości systemów uniksowych do tego stopnia, że ​​są uważane za standard dla systemów operacyjnych Unix i pochodnych open source, a także zastrzeżonych, takich jak Mac OS X.

GCC wymaga zestawu aplikacji znanych jako binutils do wykonywania zadań, takich jak identyfikowanie plików obiektowych lub uzyskiwanie ich rozmiaru w celu kopiowania, tłumaczenia lub tworzenia list, łączenia ich lub usuwania niepotrzebnych symboli.

Co nowego w GCC 10.1

GCC 10.1 wyróżnia się implementacją wielu innowacji języka C ++ opracowany dla standardu C ++ 20, ulepszenia związane z przyszłym standardem języka C (C2x), nowe optymalizacje w backendach kompilatorów i wsparcie eksperymentalne dla trybu analizy statycznej.

W przypadku języków C, C ++ i Fortran zaimplementowano specyfikację programowania równoległego OpenACC 2.6, który definiuje narzędzia do pobierania na GPU i wyspecjalizowanych procesorach, takich jak NVIDIA PTX.

Wdrożenie standardu Otwarte MP 5.0 (Open Multi-Processing), który definiuje API i metody wykorzystania metod programowania równoległego w systemach wielordzeniowych i hybrydowych (CPU + GPU / DSP) ze współdzieloną pamięcią i jednostkami wektoryzacji (SIMD), jest prawie skończony.

Funkcje są dodawane jako wyrażenia warunkowe dyrektywy lastprivate, scan i loop, porządek i wyrażenia use_device_addr. W przypadku OpenMP i OpenACC, został dodany obsługa pobierania na procesorach graficznych AMD Radeon XNUMX. i XNUMX. generacji.

W przypadku języków C dodano funkcję „access” opisującą dostęp do funkcji obiektów przekazywanych przez odniesienie lub wskaźnik oraz kojarzącą te obiekty z argumentami całkowitymi zawierającymi informacje o rozmiarze obiektów.

Aby działać w połączeniu z „dostępem”, zaimplementowano atrybut „type” w celu wykrywania nieprawidłowego dostępu funkcji użytkownika, na przykład podczas zapisywania wartości w obszarze poza granicami tablicy. Atrybut symver został również dodany do znaków dowiązania w pliku ELF do określonych numerów wersji.

W C ++ zaimplementowano około 16 zmian i innowacji opracowany w standardzie C ++ 20 w tym słowo kluczowe „constinit” dodane i wdrożone wsparcie dla rozwijania szablonów «pojęcie»Dzięki temu można zdefiniować zestaw wymagań dotyczących parametrów szablonu, które podczas kompilacji ograniczają zestaw argumentów, które mogą być traktowane jako parametry szablonu.

Również wyróżnione są ulepszone optymalizacje międzyprocedurowe, IPA-SRA został przeprojektowany, aby działał podczas wiązania i, między innymi, usuwa nieużywane obliczone i zwrócone wartości.

W trybie optymalizacji "-O2", opcja "-finline-functions" jest włączona, która jest rekonfigurowana dla bardziej kompaktowego kodu niż dla wydajności.

Plik ulepszona optymalizacja łącza (LTO), si dodano nowy plik wykonywalny lto-dump do informacji o zrzutach na plikach obiektowych zakodowanych bajtowo LTO. W równoległych przebiegach LTO liczbę współbieżnych zadań wykonawczych można określić automatycznie, a jeśli nie można tego określić, użyć informacji o liczbie rdzeni procesora jako współczynnika zrównoleglania.

Poprawiono mechanizm optymalizacji i bazuje na wynikach Code Profiling (PGO), które generuje bardziej optymalny kod na podstawie analizy charakterystyk wykonania kodu.

Jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły tego wydania W poniższym linku. 


Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.