The OpenNET Project / Index page

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

Новая версия набора компиляторов LLVM Compiler 2.6

26.10.2009 16:52

После шести месяцев разработки анонсирован новый релиз LLVM 2.6 (Low Level Virtual Machine) - GCC совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный байткод RISC подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации). Сгенерированный платформонезависимый псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы.

Основные новшества:

  • 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-совместимых платформ.

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

  1. Главная ссылка к новости (http://lists.cs.uiuc.edu/piper...)
  2. OpenNews: Сравнение производительности компиляторов GCC и LLVM-GCC
  3. OpenNews: Unladen Swallow - новая реализация интерпретатора Python на базе LLVM
  4. OpenNews: Новая версия набора компиляторов LLVM Compiler 2.5
  5. OpenNews: Новая версия набора компиляторов LLVM Compiler 2.4
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/23985-llvm
Ключевые слова: llvm, gcc, compiler, jit
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (25) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Ariel (??), 18:23, 26/10/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    что значит захотели и сделали (не без финансирования Apple и остальных), это я понимаю настоящий Open Source, учитесь!некоторые из вечной беты годами не вылазят, ноют и жалуются на "плохие" компании
     
     
  • 2.4, User294 (ok), 18:30, 26/10/2009 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Не, настоящий и по бсдшному начнется когда эппл чегонить зажмет и с другими не поделится.
     
     
  • 3.5, аноним (?), 19:32, 26/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    например? код-то уже под конкретной лицензией.
     
     
  • 4.8, User294 (ok), 19:53, 26/10/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >например? код-то уже под конкретной лицензией.

    Например? Например, ничто не мешает выпустить Apple Super Pro compiler (tm) за $NNN. И самые вкусные модификации зажать себе. Так что скажем нормальная кодогенерация будет у эппла и тех кто им $nnn заплатит, а у остальных как всегда какой-то второй сорт.

     
     
  • 5.15, northbear (??), 23:20, 26/10/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нормальная кодогенерация будет у LLVM, а Apple может пользоваться им или не пользоваться. Она может попытаться на базе этого что-то там себе варганить, но это будут только ее пироги. И не факт, что это будет кому-то, кроме Apple, интересно.

    Включи мозни и подумай хоть раз в жизни, а то так и будут у тебя бедняги среди зимы снег воровать в Антарктиде и Гондурас всю оставшуюся жизнь беспокоить...

     
  • 5.20, iZEN (ok), 01:04, 27/10/2009 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Например? Например, ничто не мешает выпустить Apple Super Pro compiler (tm) за $NNN. И самые вкусные модификации зажать себе. Так что скажем нормальная кодогенерация будет у эппла и тех кто им $nnn заплатит, а у остальных как всегда какой-то второй сорт.

    Жизненный пример: Sun выпускает свою Sun Studio, разработанную на основе NetBeans, "зажимая" плюшки себе. Так что ли? Ж))
    Или та же IBM с Eclipse нехорошо поступила, когда оставила часть кода себе. :)))
    "Жадные кругом, а я один розовый и пушистый -- первый сорт".

    Надеюсь, ты не используешь CUPS от Apple? Ж)

     
     
  • 6.22, vitek (??), 07:45, 27/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    ещё расскажи как этоn купс долгими зимними ночами разрабатывала apple, а потом взяла и подарила.
    или как санки не продавали свой компилятор больше 20 лет. и только когда на каждом серваке уже был установлен гцц сделали одолжение... и тоже, долгими зимними ночами разрабатывала нетбинс...

    нетбинс - куплен, купс - тоже. обо состоялись до покупки проприетарными монстрами. потому и ещё открыты.
    зы:
    эклипс изначально разрабатывался как открытый проект при поддержке многих фирм и (что главное) сообщества... выступление подобных перцев просто оскорбляет, т.к. и часть моего кода там есть, и продукт принадлежит мне настолько же, насколько и ibm.

     
     
  • 7.24, oops (?), 08:06, 27/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Кто-нибудь знает о какой компании идет речь?..
    Так.. любопытство.

    http://zouev.blogspot.com/2008/04/blog-post_28.html

     
  • 7.26, iZEN (ok), 15:51, 27/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >ещё расскажи как этоn купс долгими зимними ночами разрабатывала apple, а потом
    >взяла и подарила.

    Зачем мне это рассказывать, если это не так?

    >или как санки не продавали свой компилятор больше 20 лет. и только
    >когда на каждом серваке уже был установлен гцц сделали одолжение... и
    >тоже, долгими зимними ночами разрабатывала нетбинс...
    >нетбинс - куплен, купс - тоже. обо состоялись до покупки проприетарными монстрами.
    >потому и ещё открыты.

    "Ещё открыты" -- значит скоро будут закрыты? Так что ли? :))

    >зы:
    >эклипс изначально разрабатывался как открытый проект при поддержке многих фирм и (что
    >главное) сообщества... выступление подобных перцев просто оскорбляет, т.к. и часть моего
    >кода там есть, и продукт принадлежит мне настолько же, насколько и
    >ibm.

    Стыдно не знать историю.
    Среда Eclipse открыта IBM в 2001 году, в 2004 организована Eclipse Foundation.
    "Первоначально Eclipse разрабатывалась фирмой IBM как преемник среды разработки IBM VisualAge. По сведениям IBM, проектирование и разработка стоили 40 миллионов долларов. Исходный код был полностью открыт и сделан доступным после того, как Eclipse был передан независимому от IBM сообществу." -- wikipedia.

     
     
  • 8.27, vitek (??), 16:31, 27/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    ну как же это эе Вы ши слова - Надеюсь, ты не используешь CUPS от Apple Ж ... текст свёрнут, показать
     
  • 3.6, Аноним (-), 19:33, 26/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    или поделится, но не всем, пример для GPL:
    http://www.informit.com/articles/article.aspx?p=1390172
     
     
  • 4.7, User294 (ok), 19:52, 26/10/2009 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Угу, особенно убедительны страницы с .aspx. Да, наверное у них кто-то не жалует GPL :)
     
  • 2.17, нео (?), 00:43, 27/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    и что важно, это прямой конкурент .NET на территории Linux
     

  • 1.9, Аноним (-), 20:26, 26/10/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А как производительность и потребление памяти. На уровне джавы?
     
     
  • 2.10, Vitaly_loki (ok), 20:34, 26/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Сам ты Java, отличай RISC инструкции от вирт.машины в пространстве юзера
     
     
  • 3.11, Аноним (-), 21:20, 26/10/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну не знаю. Виртуальная машина должна транслировать инструкции в момент выполнения программы. Ну даже если запускать на RISC архитектуре, будет куча накладных расходов, что уж говорить о "нормальных" процессорах
     
     
  • 4.12, pavel_simple (ok), 21:29, 26/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну не знаю.

    для таких как вы есть специально придуманная документация -- почитайте.

     
  • 4.14, letsmac (?), 22:16, 26/10/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Ну даже если запускать на RISC архитектуре, будет куча накладных расходов, что уж говорить о "нормальных" процессорах

    А причем тут RISC процессоры? Тем более что CISC -то уже почти нет - у всех современных  RISC  ядро. Тем более,  кто сказал что трансляция выполняется каждый раз? Для часто используемого кода достаточно один раз перевести в натив код.  

     
  • 3.13, СуперАноним (?), 22:09, 26/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Да. Только эти инструкции гипотетического RISC процессора, всё равно, во время выполнения транслировать, в лучшем случае, в инструкции реального RISC, в худшем - в ia86.
     
     
  • 4.16, Ariel (ok), 00:06, 27/10/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это как хотите, llvm может создавать native код, используя intermediate код для link-time оптимизации, так что ничего транслироваться не будет. Но можно использовать и JIT, так работают, если не ошибаюсь, драйверы OpenGL Mac OS X; более того вы можете линковать obj-файлы gcc и llvm;
     
  • 4.18, alexxy (?), 00:45, 27/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    травой делись =)
    я такой архитектуры ia86 не знаю. Есть ia32 (он же x86) ia32_64 (он же x86_64)
    и есть ia64 (это Itanium). из древних были ia4 ia8 ia16 ( в них цифра после ia обозначает битность)
     
     
  • 5.19, Vitaly_loki (ok), 00:56, 27/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Я думаю тут не имеет значение какая именно архитектура имелась в виду, важен сам факт того, что код в нее во время JIT транслируется
     
  • 4.21, Iv945n (ok), 04:13, 27/10/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > ia86

    IA-32 наверно Вы хотели сказать.

     

  • 1.23, oops (?), 07:57, 27/10/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Приятно видеть идеи Никлауса Вирта "в металле". Наконец-то появился вменяемый компилятор.
     
  • 1.25, Аноним (-), 10:17, 27/10/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >ia32_64 (он же x86_64)

    ia - intel architecture

    x86_64 - изобрела AMD так что amd64 куда как более правильно.


     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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