Как стать автором
Обновить

Комментарии 18

К сожалению, с проектом такого размера Eclipse CDT как-то не очень хорошо справляется. Залипает. Но есть еще один способ изучения его исходников — это Microsoft Visual Studio.

Как подготовить и собрать LLVM с MSVS (нужно предварительно установить CMake 2.8):

cmake -G"Visual Studio 10"
msbuild LLVM.sln /t:Build /p:Configuration=Debug


Если при этом собирается еще и Clang, то msbuild придется прогнать три раза, первые два выпадут с ошибками.

Между прочим, тот же самый метод подходит и для Eclipse (только потребуется небольшое изменение в CMakeLists.txt).

И, кстати, TableGen вовсе не только для бекендов используется. У него множество разнообразных возможностей.
Да, спасибо, с tblgen переформулировал.

Eclipse глючит на коде llvm-gcc, с самим LLVM вроде справляется нормально
С LLVM+Clang подтормаживает (на 2Gb памяти).
Жаль lldb на не-OSX, похоже, не будет.
на FreeBSD будет
Пруфлинк? Гугол не в курсе.
А знаете почему не будет? потому GNU/GPL ^_^

Нет, там все завязано на mach-специфичные сисколы навроде OSReadSwapInt* и kern_return_t. Со стабами все компилируется несмотря на gpl и прочую eula, но не работает.
Все там будет. И на линуксе тоже. Я на рассылку подписан, поэтому и в курсе.
вы бы пояснили, что такое базовый блок. не думаю, что все в курсе
Разместил ссылки, спасибо
НЛО прилетело и опубликовало эту надпись здесь
Да, кстати, было бы интересно услышать об этом подробнее.
Автор, а почему не clang? Используете ли вы KLEE? VMKit? Automatic Pool Allocator?
Я давно слежу за проектом, но все не знаю откуда к нему подступиться.
А вы бы попробовали програмно генерить AST кланга. Он, к моему глубочайшему сожалению, для этих целей не годится ни разу. API самого LLVM намного доступнее.
Здесь все равно какой фронтенд, т.к. в обоих случаях от него требуется только сгенерировать LLVM IR. Просто llvm-gcc, на мой взгляд, и собрать сложнее, и старее он.
clang еще очень молод, и некоторое количество кода он не в состоянии скомпилировать. Например, он лишь недавно научился собирать Boost. Ядро Linux он по-моему так и не может собрать до сих пор. Насчет старости — да, он уже немного староват, зато стабилен и им можно с гарантией собрать ВСЕ. Есть проект DragonEgg — плагин к GCC4.5+, который по сути применяет LLVM после парсинга исходников. В общем, можно много интересного еще написать, ждите новых статей от меня и моих коллег!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации