The OpenNET Project / Index page

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

30.08.2011 21:21  На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ядра Linux

Разработчики Sparse, семантического парсера для языка Си, объявили о создании LLVM-бэкенда sparse-llvm. Конечной целью проекта является создание рабочего компилятора Си, способного собрать ядро Linux. Код проекта распространяется под лицензией MIT.

LLVM-бэкенд уже способен генерировать код для простых примеров на языке Си для различных платформ, но проект ещё находится на ранней стадии развития и не способен осуществить сборку реальных проектов. Созданный на базе Sparse LLVM-бэкенд, пока ограничен поддержкой таких возможностей языка Си, как вызов функций, разбор выражений Switch и if-else, выполнение арифметических, бинарных и операций с плавающей запятой. Тем не менее автор проекта считает, что sparse-llvm сможет достигнуть стадии пересборки ядра Linux раньше, чем Clang, так как Sparse, на базе которого развивается sparse-llvm, изначально полностью поддерживает парсинг кода всего ядра.

Sparse был создан Линусом Торвальдсом в 2003 году, во время его работы в компании Transmeta, в качестве замены стандартному препроцессору GCC, который не мог выявлять многие проблемы в коде ядра. В итоге, Sparse длительное время использовался для дополнительного статического анализа кода ядра Linux и позволял выявлять такие проблемы, как смешивание указателей на адресное пространство ядра и уровень пользователя (в коде ядра для разделения областей используется атрибут "__user").

Впоследствии, к проекту подключились другие разработчики, которые расширили возможности Sparse и подготовили рабочий фронтэнд для компилятора, способный осуществлять парсинг большей части ANSI C и различных расширений GCC. Sparse предоставляет набор аннотаций, предназначенных для выявления семантической информации о типах, например, о том, на какое адресное пространство указывает указатель или какие блокировки будут установлены/сняты при вызове функции.

В качестве причины создания LLVM-бэкенда указывается то, что без рабочего бэкенда (генератора кода) невозможно гарантировать полную работоспособность фронтэнда (синтаксический разбор). Ранее уже был создан тестовый бэкенд, но он был ограничен возможностью генерации кода для архитектуры i386, не был доведен до конца и содержал множество недоработок. Так как Sparse в роли фронтэнда уже полностью поддерживает парсинг кода ядра, создание LLVM-бэкенда позволит обеспечить генерацию биткода, который сможет быть преобразован в машинные инструкции для различных аппаратных архитектур. Иными словами, задача LLVM-бэкенда sparse-llvm сводится к преобразованию уже генерируемого силами Sparse промежуточного представления кода в биткод LLVM.

  1. Главная ссылка к новости (http://lwn.net/Articles/456709...)
  2. OpenNews: Увидел свет Emscripten 1.4, компилятор байткода LLVM в JavaScript-представление
  3. OpenNews: Релиз набора компиляторов LLVM 2.9
  4. OpenNews: Версия компилятора Clang с поддержкой SAFECode для выявления ошибок при работе с памятью
  5. OpenNews: В Clang обеспечена возможность сборки Linux-ядра 2.6.36
Лицензия: CC-BY
Тип: Программы
Ключевые слова: LLVM, sparse, compiler, gcc, linux, kernel, analyzer
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, фтанг, 02:12, 31/08/2011 [ответить] [смотреть все]
  • +1 +/
    >LLVM-бэкенда позволит обеспечить генерацию универсального платформонезависимого псевдокода

    llvm генерит bitcode и он платформенно зависим.
    http://llvm.org/docs/FAQ.html#platformindependent

     
     
  • 2.5, arcade, 10:36, 31/08/2011 [^] [ответить] [смотреть все] [показать ветку]
  • –1 +/
    Сам читал перед тем как ссылку ставить LLVM изначально генерит платформонезавис... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.13, Аноним, 17:37, 31/08/2011 [^] [ответить] [смотреть все]  
  • –2 +/
    gcc же делает платформо-независимый gimple Короче ты не сможешь взять файл с би... весь текст скрыт [показать]
     
     
  • 4.24, XoRe, 17:54, 04/09/2011 [^] [ответить] [смотреть все]  
  • +/
    А зачем брать файл с биткодом, когда можно взять исходник ... весь текст скрыт [показать]
     
     
  • 5.25, Аноним, 15:05, 05/09/2011 [^] [ответить] [смотреть все]  
  • +/
    Почему это LLVM финансируется прежде всего Apple, которая очень не любит показы... весь текст скрыт [показать]
     
  • 2.9, Аноним, 12:34, 31/08/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Правильнее было бы сказать не платформозависим, а платформонезависим с определен... весь текст скрыт [показать] [показать ветку]
     
  • 2.14, mihon73, 17:43, 31/08/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Это как так Моя твоя не понимать... весь текст скрыт [показать] [показать ветку]
     
     ....нить скрыта, показать (6)

  • 1.7, Аноним, 10:50, 31/08/2011 [ответить] [смотреть все]  
  • +1 +/
    на базе GCC значит такое не возможно интересный факт - запишем в книжечкую ... весь текст скрыт [показать]
     
  • 1.11, dq0s4y71, 13:02, 31/08/2011 [ответить] [смотреть все]  
  • +1 +/
    Да, "родной" кодгенератор у Спарс кривой. У меня валился в сегфолт на простейших выражениях. С другой стороны, что ожидать от "глупого" бэк-энда, как его окрестил сам Торвальдс...
     
  • 1.17, Аноним, 22:09, 31/08/2011 [ответить] [смотреть все]  
  • +/
    а разве Clang не собирает ядро По моему они уже года два, как собрали ... весь текст скрыт [показать]
     
     
  • 2.18, Аноним, 22:23, 31/08/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    С Clang собирается только минимум, позволяющий загрузиться C Clang не работает ... весь текст скрыт [показать] [показать ветку]
     
  • 2.21, ананим, 03:00, 01/09/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    угу собрали и уже 2 года не обновляли следующую сборку ждут ещё через 2 года ... весь текст скрыт [показать] [показать ветку]
     
  • 2.26, Аноним, 15:08, 05/09/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Нет Рекламная брехня на эту тему была, но основания для нее достаточно жидкие ... весь текст скрыт [показать] [показать ветку]
     

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


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList