day & night

LLVM 2.7, оптимизирующий компилятор
Дата обновления: , перейти к новому сообщению
#1
ЭЖД



*nix`оид
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 11.935
Регистрация: 18.09.2004
Пользователь №: 1.679


Респектов: 789
-----XXXX-




ph34r.gif LLVM 2.2

LLVM -- это оптимизирующий компилятор из C, C++ и других языков в низкоуровневое представление, имеющее много общего с системой команд RISC-процессоров, а также трансляторы (статические и для преобразования "на лету") из этого промежуточного представления в команды обычных процессоров. LLVM поддерживает эффективную оптимизацию на этапах компиляции, компоновки (в том числе между процедурами), и выполнения, оставаясь "прозрачным" для разработчиков и сохраняя совместимость с существующими скриптами сборки.

Из параллельно развивающихся сторонних проектов, основанных на LLVM , можно отметить VMKit ( виртуальная машина для Java VM и .NET VM), реализацию функционального языка программирования Pure, LDC (компилятор для языка D), Roadsend PHP (оптимизатор, статический и JIT компилятор для языка PHP), виртуальные машины для Ruby (Rubinius и MacRuby), Unladen Swallow (реализация языка Python), LLVM-Lua, FlashCCompiler (средство для компиляции кода на языке Си в вид пригодный для выполнения в виртуальной машине Adobe Flash).

Новое в версии 2.2:
генерация кода для процессоров Cell
экспериментальная поддержка преобразования Ada и FORTRAN через gcc-backend в промежуточное представление
поддержка типа long double на x86/x86_84 (80 бит) и Darwin PPC/PPC64 (128 бит)
поддержка более чем одного адресного пространства
в комплект поставки включены учебные руководства

Home_http://llvm.org/
Downloads (~5.4 Mb)_http://llvm.org/relea...lvm-2.2.tar.gz
User is offline
Go topGo end
 

Ответов(1 - 2)
27.10.2009 - 19:14
#2
ЭЖД



*nix`оид
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 11.935
Регистрация: 18.09.2004
Пользователь №: 1.679


Респектов: 789
-----XXXX-




ph34r.gif lvm 2.02.54

Основные новшества:
  • Clang, фронтенд для C и Objective-C, который можно использовать вместо GCC, объявлен стабильным и готовым для промышленной эксплуатации. Исходные тексты Clang распространяются в рамках лицензии BSD;
  • Значительно улучшено качество генерации кода для платформы x86_64;
  • Реализация поддержки оптимизации во время связывания (link-time) для систем, использующих формат исполняемых файлов ELF;
  • Добавлены новые генераторы кода для архитектур MSP430, SystemZ и BlackFin;
  • Поддержка генерации многопоточного кода и реализация соответствующих оптимизаций;
  • Интеграция с системой профилирования OProfile для JIT;
  • Добавлена поддержка архитектуры ARM V7 (включая Thumb2 и NEON);
  • В состав включены биндинги для языка Ada2005;
  • Реализована поддержка SSE 4.2;
  • Представлены новые субпроекты, основанные на LLVM, но не включенные в базовую поставку:
    • llvm-gcc плагин DragonEgg, нацеленный на совместимость с еще не выпущенным GCC 4.5;
    • KLEE - символьный анализатор и генератор тестовых наборов;
    • Runtime-библиотека compiler-rt;
    • llvm-mc - автогенератор ассемблера, дизассемблера и других, связанных с машинным кодом компонентов, на основе описаний параметров LLVM-совместимых платформ.

Downloads (~801 Kb)_ftp://sources.redhat...M2.2.02.54.tgz
User is offline
Go topGo end
28.04.2010 - 19:00
#3
ЭЖД



*nix`оид
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 11.935
Регистрация: 18.09.2004
Пользователь №: 1.679


Респектов: 789
-----XXXX-




ph34r.gif 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
User is offline
Go topGo end

Topic Options
Сейчас: 2.05.2024 - 2:21
Мобильная версия | Lite версия