Вышли компиляторы GCC 4.9.0 с множеством новых «фишек»
Якуб Елинек (Jakub Jelinek) от имени всех разработчиков свободных компиляторов GNU Compiler Collection из Фонда свободного ПО официально объявил о выпуске новой версии GCC 4.9.0.«Один год и один месяц прошли с момента выпуска последней мажорной версии GNU Compiler Collection, — пишет Елинек, — так что пришло время объявить о новом основном релизе. GCC 4.9.0 несёт в себе важные новые функции, недоступные в GCC 4.8.x или предыдущих версиях GCC».
Среди самого главного можно отметить поддержку OpenMP 4.0, последней версии спецификаций программирования для многоядерных процессоров. Кстати говоря, в LLVM/Clang вообще отсутствует поддержка хоть какой-нибудь версии OpenMP.Значительно улучшено качество оптимизации при сборке (link-time optimization, LTO), а также внедрены некоторые другие алгоритмы оптимизации, в том числе межпроцедурная оптимизация и оптимизация с обратной связью (feedback-directed optimization). К примеру, благодаря LTO использование памяти при компиляции Firefox уменьшилось с 15 ГБ до 3,5 ГБ, а время выполнения этой процедуры — с 1700 до 350 секунд.
Средства диагностики GCC 4.9.0 теперь работают в цвете, подцвечивая маркеры ошибок, предупреждения и т.д.
Улучшена поддержка языка программирования C в стандарте ISO C11, а также сделана значительная работа по предварительной поддержке C++1y (C++14), реализована поддержка Google Go 1.2.1.
Во многом продвинулась поддержка ARM-процессоров, в том числе сделан новый местный распределитель регистров памяти для AArch64, оптимизация для Cortex-A53 и Cortex-A57 и архитектуры big.LITTLE, а также другие улучшения.
GCC 4.9.0 благодаря патчу от Intel поддерживает расширения Advanced Vector Extensions 512 (AVX-512), которые появятся в процессорах Intel на ранее, чем в конце 2015 года. Если говорить о подддержке оборудования Intel, то GCC 4.9.0 уже умеет генерировать бинарники, оптимизированные для будущих процессоров Atom Silvermont и процессоров Broadwell, которые Intel выпустит уже в этом году. Процессоры AMD тоже не забыты: новая версия компилятора оптимизирует код для процессоров Bulldozer 4 / Excavator APU/CPU, хотя они выйдут только через год.
Добавлена поддержка процессоров IBM Power8.
Полный список изменений в GCC 4.9.0 см. в changelog«е. На сайте Phoronix можно найти бенчмарки, сравнивающие производительность GCC 4.9.0 по сравнению с предыдущими версиями и LLVM/Clang.