LLVM 2.7 В новом релизе существенно улучшилось качество генерируемого кода, расширен состав генерируемой информации для отладчиков, а также сделано большое количество изменений в инфраструктуре, самая важная из которых - это то, что Clang теперь может успешно компилировать свои собственные исходные тексты, что в случае разработки компиляторов является существенным достижением, тем более, при использовании конструкций C++.
Наиболее важные новшества LLVM версии 2.7:
* Поддержка платформы MicroBlaze;
* API дизассемблера (пока поддерживается архитектура X86);
* Более эффективное с точки зрения потребления памяти и гибкое представление отладочной информации;
* Расширяемая система метаданных для промежуточного представления генерируемого кода (Intermediate Representation, IR), что позволяет реализовать новые возможности для оптимизации языковых конструкций;
* Прямой доступ к блокам IR, что может повышать производительность некоторых конструкций интерпретируемых языков программирования на более чем 20%;
* Дальнейшее развитие проекта LLVM-MC (LLVM-дизассемблер);
* Дальнейшее развитие поддержки C++ в Clang;
* Поддержка non-temporal обращений к памяти (идентичных логике инструкции MOVNT архитектуры X86), что позволит эффективнее использовать кеш процессора;
* Поддержка "коротких" чисел с плавающей точкой
* Улучшенная генерация кода для часто используемых в языке Си так называемых "tail calls" (например, конструкция 'return strndup(buf, text_buffer_size);
* Оптимизированный эвристический подход для использования inline-функций;
* Возможность использования отладчика в JIT-компиляторе и другие нововведения.
Downloads (~8 Mb)_
http://llvm.org/releases/2.7/llvm-2.7.tgz