Компилятор GCC 10.1 уже здесь, и это его основные нововведения

После года разработки опубликован выпуск новой версии из бесплатного набора Компиляторы GCC 10.1, это первый значительный выпуск в новой ветке GCC 10.x.

Согласно новой схеме нумерации версий, в процессе разработки использовалась версия 10.0 и незадолго до выпуска GCC 10.1 ветка GCC 11.0 уже была разветвлена, на основе которой будет сформирована следующая версия. Значение GCC 11.1 .

Тем, кто не знаком с GCC (Коллекция компиляторов GNU), следует знать, что eЭто набор компиляторов, созданных проектом GNU, является бесплатным программным обеспечением и распространяется Free Software Foundation (FSF) под общедоступной лицензией GPL.

Эти компиляторы широко используются в большинстве систем Unix. до такой степени, что они считаются стандартом для операционных систем Unix и производных с открытым исходным кодом, а также проприетарных, таких как Mac OS X.

GCC требует набора приложений, известных как binutils, для выполнения таких задач, как идентификация объектных файлов или получение их размера для копирования, перевода или создания списков, связывания их или удаления ненужных символов.

Что нового в GCC 10.1

GCC 10.1 выделяется реализацией многих нововведений языка C ++. разработан для стандарта C ++ 20, улучшения, связанные с будущим стандартом языка C (C2x), новые оптимизации в бэкэндах компилятора и экспериментальная поддержка для режима статического анализа.

Для языков C, C ++ и Fortran реализована спецификация параллельного программирования OpenACC 2.6., который определяет инструменты загрузки для графических процессоров и специализированных процессоров, таких как NVIDIA PTX.

Реализация стандарта Откройте MP 5.0 (Open Multi-Processing), который определяет API и методы использования методов параллельного программирования в многоядерных и гибридных системах (CPU + GPU / DSP) с общей памятью и блоками векторизации (SIMD), он почти готов.

Функции добавляются как условные выражения lastprivate, директивы сканирования и цикла, выражения порядка и use_device_addr. Для OpenMP и OpenACC, это было добавлено поддержка загрузки на графические процессоры AMD Radeon XNUMX-го и XNUMX-го поколения.

Для языков C функция "доступа" была добавлена ​​для описания доступа к функции объектов, переданных по ссылке или указателю, и для связи этих объектов с целочисленными аргументами, содержащими информацию о размере объектов.

Для работы совместно с «доступом» реализован атрибут «тип» для обнаружения некорректного доступа из пользовательских функций, например, при записи значений в область за пределами массива. Атрибут symver также был добавлен для связывания символов в файле ELF с определенными номерами версий.

Для C ++ реализовано около 16 изменений и нововведений. разработан в стандарте C ++ 20 включая ключевое слово "constinit" добавление и реализация поддержки расширения шаблонов «концепция»Это позволяет вам определить набор требований к параметрам шаблона, которые во время компиляции ограничивают набор аргументов, которые могут быть приняты в качестве параметров шаблона.

Также выделены улучшенные межпроцедурные оптимизации, IPA-SRA был переработан для работы во время привязки и, среди прочего, теперь удаляет неиспользуемые вычисленные и возвращаемые значения.

В режиме оптимизации «-O2» включена опция «-finline-functions», которая перенастраивается для более компактного кода, чем для производительности.

Это также подчеркивает улучшенная оптимизация ссылок (LTO), sи добавил новый исполняемый файл lto-dump для вывода информации в объектных файлах с байтовым кодом LTO. В параллельных проходах LTO можно автоматически определять количество задач одновременного выполнения и, если это невозможно определить, использовать информацию о количестве ядер ЦП в качестве фактора распараллеливания.

Улучшен механизм оптимизации и основан на результатах профилирования кода (PGO), который генерирует более оптимальный код на основе анализа характеристик выполнения кода.

Если вы хотите узнать об этом больше, вы можете проверить детали этого выпуска По следующей ссылке. 


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.