[LOR] Релиз LLVM 2.8

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6001
ОС: gnu/linux

[LOR] Релиз LLVM 2.8

Сообщение rssbot »

Спустя полгода активной разработки, аннонсирован выход версии 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
Спасибо сказали:
Аватара пользователя
Dmitry Shurupov
Сообщения: 336
Статус: Open Source geek
ОС: Ubuntu Linux

Re: [LOR] Релиз LLVM 2.8

Сообщение Dmitry Shurupov »

Вышла новая версия системы программирования с открытым кодом LLVM (Low Level Virtual Machine) — 2.8. В последний релиз LLVM были включены новые проекты: libc++ (реализация стандартной библиотеки языка C++, готовая к поддержке нового стандарта C++0x и ориентированная на высокую производительность) и LLDB («высокопроизводительный отладчик нового поколения»). Среди прочих изменений выделяются поддержка отладки оптимизированного кода, новый инструмент llvm-diff для «семантического сравнения» файлов .ll, различные улучшения в проекте MC (LLVM Machine Code). LLVM разрабатывается при поддержке компании Apple, распространяется под BSD-подобной лицензией (University of Illinois/NCSA Open Source License).

оригинал на www.nixp.ru
По-моему, это еще один повод перейти на Убунту.
Спасибо сказали:
hippi90
Сообщения: 83
ОС: Debian testing

Re: [LOR] Релиз LLVM 2.8

Сообщение hippi90 »

А чем так хорош этот LLVM?
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: [LOR] Релиз LLVM 2.8

Сообщение frp »

hippi90 писал(а):
07.10.2010 16:30
А чем так хорош этот LLVM?

А разве и так не ясно?

LLVM - набор библиотек C++ (имеются C, D, Ocaml, .NET биндинги) и инструментов для создания компиляторов.
Генерируется так называемый LLVM IR. LLVM IR - низкоуровневый язык машины с бесконечным числом регистров. Код на этом языке представляет собой трехадресный код. Язык является SSA (http://en.wikipedia.org/wiki/Static_single_assignment_form).
LLVM содержит интерпретатор (медленный, по дефолту используется только на архитектурах, для которых LLVM не умеет генерировать машинный код) биткода, на x86, x86-64, ARM и некоторых других реализован JIT, код генерируется очень даже качественный.
Также поддерживается обычная статическая компиляция (генерируется ассемблерный код).
LLVM имеет модульную архитектуру. Можно легко написать свой драйвер для LLVMC.
Особенность LLVM - оптимизации везде, где это возможно. Благодаря этому получается очень быстрый код. Именно из-за этого код, сгенерированный llvm-gcc, часто обгоняет по скорости код, сгенерированный, обычным gcc.

Если интересно, могу привести простой пример использования LLVM (около 200 строк, т.к. писалось для себя, то без проверок на ошибки и комментариев).

Сейчас на основе LLVM разрабатывается альтернативный компилятор языков семейства C - Clang. Качество компиляторов C и ObjC уже очень даже хорошое (об этом говорит включение Clang в Apple-вские SDK), C++ отстает, но его активно пилят.

Спасибо сказали:
hippi90
Сообщения: 83
ОС: Debian testing

Re: [LOR] Релиз LLVM 2.8

Сообщение hippi90 »

frp писал(а):
07.10.2010 18:20
...

Т.е. если я правильно понял, это средство разработки высоко оптимизированных компиляторов? И для, скажем так, конечного пользователя смысл имеет не сам LLVM, а разработки на его базе?
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: [LOR] Релиз LLVM 2.8

Сообщение frp »

hippi90 писал(а):
07.10.2010 19:09
Т.е. если я правильно понял, это средство разработки высоко оптимизированных компиляторов?

Да.
hippi90 писал(а):
07.10.2010 19:09
И для, скажем так, конечного пользователя смысл имеет не сам LLVM, а разработки на его базе?

Зависит от того, кого считать конечным пользователем.
Спасибо сказали: