The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Новая версия набора компиляторов LLVM 3.5"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от opennews (??) on 05-Сен-14, 09:44 
Анонсирован (http://lists.cs.uiuc.edu/pipermail/llvm-announce/2014-Septem...) релиз проекта LLVM 3.5 (http://llvm.org) (Low Level Virtual Machine) - GCC совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный биткод (http://llvm.org/docs/BitCodeFormat.html) RISC подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации). Сгенерированный платформонезависимый псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы.

Улучшения (http://llvm.org/releases/3.5.0/tools/clang/docs/ReleaseNotes...) в Clang 3.5:


-  Достижение уровня самопересборки (self host) на платформах Linux/Sparc64 и FreeBSD/Sparc64;
-  Начальная поддержка некоторых элементов будущего международного стандарта C++1z, идущего следом за стандартом C++ 14 (http://www.opennet.ru/opennews/art.shtml?num=40408), полная поддержка которого уже реализована в Clang (Clang стал первым компилятором с поддержкой C++ 14);

-  На платформе Windows задействован обновлённый MingW ABI для достижение совместимости с GCC 4.7 и более новыми выпусками;
-  Значительный прогресс в реализации поддержки OpenMP. Добавлен разбор и анализ семантики для всех pragma, определённых в спецификации OpenMP 3.1 (http://www.opennet.ru/opennews/art.shtml?num=31153), за исключением atomics и ordered. Runtime-библиотека (http://www.opennet.ru/opennews/art.shtml?num=38110) OpenMP адаптирована для поддержки арихитектур ARM и PowerPC. Частично реализованы некоторые возможности OpenMP 4.0 (http://www.opennet.ru/opennews/art.shtml?num=37635), такие как  векторизация последовательных и параллелизированных циклов с использованием  инструкции SIMD, и поддержка ускорения вычислений за счёт задействования дополнительных аппаратных вычислительных устройств.

-  Средство проверки наличия атрибутов __has_attribute теперь учитывает поддержку заданного атрибута целевой платформой для которой осуществляется сборка (ранее проверялось лишь семантическое наличие атрибута без учёта его фактической поддержки);
-  Поддержка генерации ремарок (флаг "-R"), диагностических сообщений о процессе компиляции, в том числе информирующих ("-Rpass") об использовании тех или иных оптимизаций для разных частей кода. Изучение ремарок позволяет разработчику увеличить эффективность оптимизации кода;-  Расширены средства диагностики ошибок. Обеспечен вывод нефатального предупреждения вместо вывода ошибки при использовании неподдерживаемых флагов оптимизации GCC. Добавлены новые типы предупреждений: -Wabsolute-value, -Wtautological-pointer-compare и -Wtautological-undefined-compare.

Основные новшества (http://llvm.org/releases/3.5/docs/ReleaseNotes.html) LLVM 3.5:


-  В реализацию интегрированного ассемблера для архитекстуры ARM добавлена поддержка многих директив и расширений GNU;
-  В интегрированный ассемблер добавлена поддержка  MIPS и PowerPC;
-  Поддержка шестой редакции архитектур MIPS32 и MIPS64;
-  Значительно улучшена поддержка архитектуры AArch64, в том числе улучшен процесс генерации кода, добавлена поддержка iOS и значительно ускорен процесс компиляции при выборе уровня оптимизации "-O0";


Из параллельно развивающихся проектов, основанных на LLVM, можно отметить:


-  KLEE (http://klee.llvm.org/) - символьный анализатор и генератор тестовых наборов;

-  Runtime-библиотека compiler-rt (http://compiler-rt.llvm.org/);

-  llvm-mc (http://llvm.org/releases/2.6/docs/ReleaseNotes.html#mc) - автогенератор ассемблера, дизассемблера и других связанных с машинным кодом компонентов на основе описаний параметров LLVM-совместимых платформ.

-  VMKit (http://vmkit.llvm.org/) - виртуальная машина для Java и .NET;

-  Реализация функционального языка программирования Pure (http://pure-lang.googlecode.com/);

-   LDC (http://www.dsource.org/projects/ldc) - компилятор для языка D;

-  Roadsend PHP (http://code.roadsend.com/rphp) - оптимизатор, статический и JIT компилятор для языка PHP;

-  Виртуальные машины для Ruby: Rubinius (http://rubini.us/) и MacRuby (http://www.macruby.org/);

-  LLVM-Lua (http://code.google.com/p/llvm-lua/)

-  FlashCCompiler (http://llvm.org/devmtg/2008-08/Petersen_FlashCCompiler.pdf) - средство для компиляции кода на языке Си в вид, пригодный для выполнения в виртуальной машине Adobe Flash;

-  LLDB (http://lldb.llvm.org/) - новая (http://www.opennet.ru/opennews/art.shtml?num=26907)  модульная инфраструктура отладки, использующая такие подсистемы LLVM как API для дизассемблирования, Clang AST (Abstract Syntax Tree), парсер выражений, генератор кода и JIT-компилятор. LLDB поддерживает отладку многопоточных программ на языках C, Objective-C и C++; отличается возможностью подключения плагинов и скриптов на языке Python; показывает крайне высокое быстродействие при отладке программ большого размера;

-  emscripten (https://github.com/kripken/emscripten/wiki) - компилятор биткода LLVM в JavaScript, позволяющий преобразовать для запуска в браузере приложения, изначально написанные на языке Си. Например, удалось запустить Python, Lua, Quake, Freetype;

-  sparse-llvm (https://github.com/penberg/sparse-llvm) - бэкенд, нацеленный (http://www.opennet.ru/opennews/art.shtml?num=31636) на создание Си-компилятора, способного собирать ядро Linux.

-  Portable OpenCL (http://www.opennet.ru/opennews/art.shtml?num=32092) -  открытая и независимая реализация стандарта OpenCL;

-  CUDA Compiler (http://www.opennet.ru/opennews/art.shtml?num=33800) - позволяет сгенерировать GPU-инструкции из кода, написанного на языках Си, Си++ и Fortran;

-  Julia (http://www.opennet.ru/opennews/art.shtml?num=33315) - открытый динамический язык программирования, использующий наработки проекта LLVM.

-  Jade (https://github.com/orcc/jade) (Just-in-time Adaptive Decoder Engine) - универсальный движок для декодирования видео, использующий LLVM для JIT-компиляции адаптивных конфигураций декодера видео, определённых комитетом MPEG Reconfigurable Video Coding (RVC);
-  PNaCl (https://developers.google.com/native-client/pnacl-preview/ov...) (Portable Native Client) - интегрированная в браузер Chrome система, которая позволяет организовать выполнение приложений, написанных на языках C и С++, в специальном изолированном окружении web-браузера, независимо от текущей аппаратной архитектуры;
-  PoCL (Portable Computing Language OpenCL) -  реализация стандарта OpenCL, независимая от производителей графических ускорителей и позволяющая использовать различные бэкенды для выполнения OpenCL-ядер на разных типах графических и центральных процессоров;
-  Likely (http://www.liblikely.org/) - открытый предметно-ориентированный язык  для распознавания изображений. Алгоритмы распознавания на лету компилируются (JIT) при помощи инфраструктуры LLVM MCJIT для выполнения на одно- или многоядерных CPU, а также на GPU с использованием OpenCL SPIR или CUDA.
-   LibBeauty (http://www.libbeauty.com/) - инструментарий для декомпиляции и обратного инжиниринга, построенный с использованием дизассемблера LLVM  и LLVM IR Builder. Приняв на входе объектный файл (.o) на выходе генерирует файл в промежуточном представлении LLVM (.bc или .ll);

-   McSema (http://www.opennet.ru/opennews/art.shtml?num=40375) - фреймворк для преобразования машинного кода в биткод LLVM;
-  Swift (http://www.opennet.ru/opennews/art.shtml?num=39912) -   основанный на LLVM язык программирования, развиваемый компанией Apple;
-  FTL (http://www.opennet.ru/opennews/art.shtml?num=39784) (Fourth Tier LLVM) - JIT-компилятор для движка WebKit;


URL: http://lists.cs.uiuc.edu/pipermail/llvm-announce/2014-Septem...
Новость: http://www.opennet.ru/opennews/art.shtml?num=40520

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Новая версия набора компиляторов LLVM 3.5"  –13 +/
Сообщение от Аноним (??) on 05-Сен-14, 09:44 
Глюкало. Как минимум на AMDшных GPU - это вообще самый глючный компилер из всех которые я когда либо видел.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Аноним (??) on 05-Сен-14, 10:58 
http://osdyson.org/news/74
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Новая версия набора компиляторов LLVM 3.5"  –3 +/
Сообщение от Штунц on 05-Сен-14, 11:13 
> платформонезависимый псевдокод может быть преобразован при помощи
> JIT-компилятора в машинные инструкции непосредственно в момент
> выполнения программы

Растолкуйте, зачем это нужно "в момент выполнения программы". И кому понадобится распространять софт в таком виде?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Andrey Mitrofanov on 05-Сен-14, 11:23 
> Растолкуйте, зачем это нужно "в момент выполнения программы". И кому понадобится распространять
> софт в таком виде?

Исполнение скриптовых языков со скоростью компилируемых. Почти.
"Своевременная" оптимизация.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Новая версия набора компиляторов LLVM 3.5"  +1 +/
Сообщение от Pbibi on 05-Сен-14, 11:25 
Нажимаете кнопку "Turbo" и компьютер работает быстрее.
Просто раньше для этого добавляли тактовой частоты процессора.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Аноним (??) on 05-Сен-14, 12:07 
>Добавлена возможность сборки и установки LLVM и Clang с использованием CMake

WAT? LLVM всегда собирали с помощью CMake

>VMKit - виртуальная машина для Java и .NET

на офсайте написано, что проект прекращен.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Аноним (??) on 05-Сен-14, 12:12 
Roadsend PHP оно работает? несколько лет назад можно было скачать исходники, скомпилить и увидеть надпись что движка там собственно еще не написано
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Новая версия набора компиляторов LLVM 3.5"  +1 +/
Сообщение от Аноним (??) on 05-Сен-14, 12:26 
Похоже половину проектов тут запостили абы запостить. Этот Roadsend PHP уже с 2012 года (судя под гитхабу) никуда не движется и помер. А в новости ссылка так вообще нерабочая.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Xaionaro email(ok) on 05-Сен-14, 12:41 
Битая ссылка у:

> -  Roadsend PHP (http://code.roadsend.com/rphp) - оптимизатор, статический и JIT компилятор для языка PHP;


$ host code.roadsend.com 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:

Host code.roadsend.com not found: 3(NXDOMAIN)


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Аноним (??) on 05-Сен-14, 13:12 
Вот оно похоже дохлое с 2012 https://github.com/weyrick/roadsend-php-raven
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Новая версия набора компиляторов LLVM 3.5"  +2 +/
Сообщение от Анооооним on 05-Сен-14, 14:10 
> Глюкало. Как минимум на AMDшных GPU - это вообще самый глючный компилер
> из всех которые я когда либо видел.

Сынку, ты хочешь сказать, что GCC изначально не был глюкалом, поскольку код упал с неба как божественное откровение?

Все пишут такие же недоумки, как и ты - в телогреечке.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

12. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Алексей (??) on 05-Сен-14, 15:01 
Там в списке таких где-то половина. Список копируют из новости в новость.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

13. "Новая версия набора компиляторов LLVM 3.5"  –3 +/
Сообщение от iZEN (ok) on 05-Сен-14, 15:32 
> Достижение уровня самопересборки (self host) на платформах Linux/Sparc64 и FreeBSD/Sparc64

Как же я всё это время обходился без GCC?!

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Новая версия набора компиляторов LLVM 3.5"  +5 +/
Сообщение от Andrey Mitrofanov on 05-Сен-14, 17:12 
>> Достижение уровня самопересборки (self host) на платформах Linux/Sparc64 и FreeBSD/Sparc64
> Как же я всё это время обходился без GCC?!

Без головы-то обходишься как-то.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Я (??) on 05-Сен-14, 19:14 
У тебя Sparc64 ?
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

16. "Новая версия набора компиляторов LLVM 3.5"  –1 +/
Сообщение от iZEN (ok) on 05-Сен-14, 19:32 
> У тебя Sparc64 ?

Хм,
% uname -rsm
FreeBSD 10.1-PRERELEASE amd64

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "Новая версия набора компиляторов LLVM 3.5"  –2 +/
Сообщение от iZEN (ok) on 05-Сен-14, 19:33 
>>> Достижение уровня самопересборки (self host) на платформах Linux/Sparc64 и FreeBSD/Sparc64
>> Как же я всё это время обходился без GCC?!
> Без головы-то обходишься как-то.

Спасибо что поправил.


Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

18. "Новая версия набора компиляторов LLVM 3.5"  +1 +/
Сообщение от Алексей (??) on 05-Сен-14, 19:47 
А теперь внимательно читаем новость, особенно про ОС где производится компиляция.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

19. "Новая версия набора компиляторов LLVM 3.5"  –1 +/
Сообщение от Аноним (??) on 05-Сен-14, 20:13 
> WAT? LLVM всегда собирали с помощью CMake

WAT? CMake и autocrap там всегда поддерживались параллельно.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

20. "Новая версия набора компиляторов LLVM 3.5"  –2 +/
Сообщение от Аноним (??) on 05-Сен-14, 22:24 
Что-то твою подгорелую пятую точку в каждой теме про llvm видно. Так вот в очередной раз отвечаю - ты врун, и работает оно замечательно. И без llvm такой производительности бы никак не достигло.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

21. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Аноним (??) on 05-Сен-14, 22:46 
> Сынку, ты хочешь сказать, что GCC изначально не был глюкалом,

Я хочу сказать что амдшный бэкэнд для GPU глюкавит 2 года, а у этих му... даже нет нормальной разбивки багтрекера на секции, чтобы указать что баг - в амдшном бэкэнде. Пишите на шланг вообще, дескать. Киздатый подход к качеству..

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

22. "Новая версия набора компиляторов LLVM 3.5"  +1 +/
Сообщение от Аноним (??) on 05-Сен-14, 22:47 
> вот в очередной раз отвечаю - ты врун, и работает оно замечательно.

Только валится на сборке тривиальнейших opencl kernel-ов без особых на то причин. А так все хорошо, прекрасная маркиза.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

23. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Аноним (??) on 05-Сен-14, 22:53 
> Исполнение скриптовых языков со скоростью компилируемых.

Не, не так. Отгружаешь юзеру бинарь в виде intermediate кода, а он потом оттранслируется в x86. Или x86_64. Или ARM. Или что там еще у этого юзера, если оно поддерживается.

Ну в общем посмотри на pnacl в гуглохроме. Не столь уж и поганая идея, правда нужна больше проприетарщикам всяким и тем кого в репы не берут.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

24. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Аноним (??) on 05-Сен-14, 22:55 
> FreeBSD 10.1-PRERELEASE amd64

Что-то не очень похоже на Sparc64...

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

25. "Новая версия набора компиляторов LLVM 3.5"  –1 +/
Сообщение от iZEN (ok) on 05-Сен-14, 23:10 
>> FreeBSD 10.1-PRERELEASE amd64
> Что-то не очень похоже на Sparc64...

Ты тоже заметил? Странно...


Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

26. "Новая версия набора компиляторов LLVM 3.5"  +1 +/
Сообщение от Аноним (??) on 06-Сен-14, 13:29 
> Похоже половину проектов тут запостили абы запостить.

Синдром утенка. Пиарят какой-то левый крап, чтобы показать что LLVM хоть где-то используется. При том пиарят тyпой копипастой, так что половина этого списка давно сдохла.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

27. "Новая версия набора компиляторов LLVM 3.5"  +1 +/
Сообщение от Аноним (??) on 06-Сен-14, 13:32 
> Ты тоже заметил? Странно...

А еще я заметил что кое-кто забыл отпустить ручник.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

28. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Аноним (??) on 06-Сен-14, 16:31 
Что-то как обычно... поматросили и бросили!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Кевин on 06-Сен-14, 22:23 
руки из жопы это конечно обычная причина а не особая, но всётки очень значимая.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

30. "Новая версия набора компиляторов LLVM 3.5"  +/
Сообщение от Кевин on 06-Сен-14, 22:27 
>> платформонезависимый псевдокод может быть преобразован при помощи
>> JIT-компилятора в машинные инструкции непосредственно в момент
>> выполнения программы
> Растолкуйте, зачем это нужно "в момент выполнения программы". И кому понадобится распространять
> софт в таком виде?

что-бы с джавой конкурировать и да для скриптов это очень полезная фича. более того имея JiT можно при необходимости перейти на AoT.. не говоря о том что тот же код всё также можно просто скомпилировать...

короткий ответ: тем ребятам у которых больше денег чем у тебя.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру