Релиз LLVM 2.8

Спустя полгода активной разработки, аннонсирован выход версии 2.8 набора компиляторов LLVM , распространяемых по условиям BSD-подобной лицензии UIUC. Одновременно вышли и обновления подпроектов LLVM: компилятора C/C++ - Clang, модифицированной версии GCC 4.2.x (использует LLVM для генерации кода) - llvm-gcc , плагина для GCC 4.5 (и выше) - dragonegg.

Наиболее значимые изменения:

  • в основной проект вошел отладчик LLDB
  • другим дополнением проекта стала замена libstdc++ - совместимая с C++0x стандартом библиотека libc++
  • LLVM Machine Code (MC) подсистема для поддержки ассемблирования, дизассемблирования и обработки бинарных форматов файлов. (подробности в блоге)

    к сожалению вышеперечисленные новшества реализованы в LLVM 2.8 только для платформ MacOSX x86 и x86-64

  • llvm-diff для семантического сравнивания .ll файлов.

в числе других изменений можно отметить:

  • оптимизация внутренних функций работы с памятью
  • более эффективная отладка, за счет генерации метаданных для отладчика в режиме реального времени
  • более эффективная оптимизация циклов, вложенности функций (inlining), -loweratomic pass
  • Clang теперь поддерживает ключи -momit-leaf-frame-pointer, -ffunction-sections, -fdata-sections
  • Значительно улучшен аллокатор регистров (особенно для -O0), возможен выбор алллокатора (в зависимости от ключа -O) при использовании ключа -regalloc=default, также будет задействованы SSE регистры
  • Множество процессор-специфичных оптимизаций для платформ ARM и x86 (SSE,AVX,NEON)

Просмотреть полный список изменений. (также по ссылке доступен и список нерешенных проблем релиза)
Ознакомиться с материалами конференции разработчиков LLVM, прошедшей перед релизом
Скачать source-tarball's

©  Linux.org.ru