Представлен релиз свободного набора компиляторов GCC 8.1
Новости
В обновлении появились улучшенные средства диагностики, механизмы оптимизации и реализованы некоторые возможности будущего стандарта C++2a.
1К открытий1К показов
Спустя год после выхода GCC 7.1, опубликован новый релиз свободного набора компиляторов GCC 8.1 с расширением средств диагностики, реализацией некоторых опций будущего стандарта C++2a и другими функциями.
Поддержка стандартов C++
В libstdc++ появились новые возможности стандартов C++17, такие, как std::filesystem, std::char_traits, std::to_chars, std::from_chars, а также экспериментального C++2a: std::to_address и std::endian. Добавлена поддержка расширений математических функций __gnu_cxx::airy_ai и __gnu_cxx::airy_bi.
Оптимизация
Механизм PGO генерирует улучшенный код на основе анализа особенностей его выполнения. Режим оптимизации -freorder-blocks-and-partition
на системах x86/x86-64 разделяет тело функции на «горячие» и «холодные» области выполнения. Он применяется по умолчанию, начиная с уровня «-O2». Также в системе оптимизации улучшен способ представления отладочной информации в формате DWARF.
Диагностика
Расширенные средства диагностики точнее находят конфликты в коде и предлагают подсказки по их устранению. Например, теперь в случае пропущенных скобок }
и )
компилятор указывает на место возможного пропуска. В случае обращения к приватным полям класса или структурам выдается подсказка по использованию функции-обертки. Конфликтующие типы шаблонов выделяются цветом или отображаются в виде иерархии.
Архитектуры
Для ARM64 появилась поддержка механизма SVE с расширенными инструкциями для векторной обработки данных. Внесена поддержка архитектур Armv8-R, Armv8.3-A и Armv8.4-A, а также процессоров Arm Cortex серий A75, A55 и R52.
Новые расширения
Добавлена поддержка процессоров Intel Cannon Lake c расширениями AVX512VBMI, AVX512IFMA и SHA ISA. Intel Ice Lake поддерживается c AVX512VNNI, GFNI, VAES, AVX512 VBMI2 и другими расширениями. CET (Intel Control-flow Enforcement Technology) для систем x86 активируется при помощи опций -mibt
, -mshst
и -mcet
.
С полным списком изменений в новой версии можно ознакомиться на официальном сайте разработчиков.
Напомним, что предыдущая версия компилятора — 7.3 вышла в январе 2018 года. Разработчики внедрили в GCC защиту от атак типа Spectre, а также устранили проблемы с совместимостью.
1К открытий1К показов