GCC 12.1 został już wydany i to są jego nowości

Po roku rozwoju Wydano pakiet kompilacji GCC 12.1, pierwsze znaczące wydanie nowej gałęzi GCC 12.x.

Zgodnie z nowym schematem numerowania wersji, wersja 12.0 była używana podczas rozwoju, a na krótko przed wydaniem GCC 12.1, gałąź GCC 13.0 była już rozwidlona, ​​z której zostanie utworzona kolejna główna wersja GCC 13.1.

GCC 12.1 Główne nowe funkcje

W tej nowej wersji, która jest prezentowana, podkreślono, że sdodano obsługę formatu debugowania CTF, który zapewnia kompaktowe przechowywanie informacji o typach C, relacjach między funkcjami i symbolach debugowania. Po osadzeniu w obiektach ELF format pozwala na użycie tablic symboli EFL w celu uniknięcia powielania danych.

Oprócz tego należy zauważyć, że trwają prace nad rozszerzeniem wsparcia dla przyszłych standardów C2X i C++23 dla C i C++ i że również kompatybilność z eksperymentalne sekcje norm C++20 i C++23 zostały ulepszone w bibliotece standardowej C++.

Dla architektury x86, dodano dodatkową ochronę przed lukami procesora spowodowanymi wykonaniem spekulacyjnym instrukcji po bezwarunkowych operacjach skoku do przodu. Problem wynika z wywłaszczającego przetwarzania instrukcji bezpośrednio po instrukcji skoku w pamięci (SLS, Straight Line Speculation). Sugerowana jest opcja "-mharden-sls", aby włączyć ochronę.

Podkreśla się również, że dodano definicję użycia niezainicjowanych zmiennych do eksperymentalnego analizatora statycznego. Dodano początkową obsługę parsowania kodu zespołu na wstawkach wbudowanych. Ulepszone śledzenie pamięci. Przepisany kod do obsługi wyrażeń zmian.

Zostały dodane 30 nowych połączeń do libgccjit, udostępniona biblioteka do osadzania generatora kodu w innych procesach i używania go do kompilacji kodu bajtowego JIT do kodu natywnego.

Z drugiej strony podkreśla się, że wsparcie mechanizmu CO-RE (Kompiluj raz - uruchom wszędzie) do zaplecza, aby wygenerować kod bajtowy BPF, który pozwala skompilować kod programów eBPF dla jądra Linux tylko raz i użyj specjalnego uniwersalnego programu ładującego, który dostosowuje załadowany program do aktualnego jądra i typów BTF (format typu BPF). CO-RE rozwiązuje problem przenośności skompilowanych programów eBPF, które wcześniej mogły być używane tylko w wersji jądra, dla której zostały zbudowane, ponieważ pozycja elementów w strukturach danych różni się w zależności od wersji.

został dodany do Obsługa backendu RISC-V dla nowych rozszerzeń architektury zestawów instrukcji zba, zbb, zbc i zbs, a także rozszerzenia ISA dla wektorowych i skalarnych operacji kryptograficznych. Obsługa specyfikacji RISC-V ISA 20191213 jest zapewniona domyślnie. Dodano flagę -mtune=thead-c906, aby włączyć optymalizacje dla jąder T-HEAD c906.

Dodany wsparcie dla typu __int128_t/integer(rodzaj=16) do backendu generowania kodu dla procesorów graficznych AMD w oparciu o mikroarchitekturę GCN. Możliwe jest użycie do 40 grup roboczych na jednostkę obliczeniową (CU) i do 16 frontów instrukcji (wavefront, zestaw wątków wykonywanych równolegle przez silnik SIMD) na grupę. Wcześniej dozwolona była tylko jedna krawędź instrukcji na CU.

Wskaźniki "-march", "-mptx" i "-march-map" zostały dodane do backendu NVPTX, zaprojektowany do generowania kodu przy użyciu architektury zestawu instrukcji NVIDIA PTX (Parallel Thread Execution). Wdrożone wsparcie dla PTX ISA sm_53, sm_70, sm_75 i sm_80. Domyślna architektura to sm_30.

Oprócz tego podkreślono, że naprawiono problem polegający na tym, że kompilator wykonywałby niekwalifikowane wyszukiwanie; wyrażenia operatora zależnego w czasie definicji szablonu, a nie w czasie tworzenia. To rozwiązanie dopasowuje istniejące zachowanie dla wyrażeń wywołań zależnych.

Warto wspomnieć, że 23 maja projekt będzie obchodził 35 lat od powstania pierwszego wydania GCC. Wreszcie jeśli chcesz dowiedzieć się więcej na ten tematmożesz sprawdzić szczegóły 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.