Комментарии 18
К сожалению, с проектом такого размера Eclipse CDT как-то не очень хорошо справляется. Залипает. Но есть еще один способ изучения его исходников — это Microsoft Visual Studio.
Как подготовить и собрать LLVM с MSVS (нужно предварительно установить CMake 2.8):
Если при этом собирается еще и Clang, то msbuild придется прогнать три раза, первые два выпадут с ошибками.
Между прочим, тот же самый метод подходит и для Eclipse (только потребуется небольшое изменение в CMakeLists.txt).
И, кстати, TableGen вовсе не только для бекендов используется. У него множество разнообразных возможностей.
Как подготовить и собрать LLVM с MSVS (нужно предварительно установить CMake 2.8):
cmake -G"Visual Studio 10" msbuild LLVM.sln /t:Build /p:Configuration=Debug
Если при этом собирается еще и Clang, то msbuild придется прогнать три раза, первые два выпадут с ошибками.
Между прочим, тот же самый метод подходит и для Eclipse (только потребуется небольшое изменение в CMakeLists.txt).
И, кстати, TableGen вовсе не только для бекендов используется. У него множество разнообразных возможностей.
Жаль lldb на не-OSX, похоже, не будет.
на FreeBSD будет
А знаете почему не будет? потому GNU/GPL ^_^
вы бы пояснили, что такое базовый блок. не думаю, что все в курсе
Автор, а почему не clang? Используете ли вы KLEE? VMKit? Automatic Pool Allocator?
Я давно слежу за проектом, но все не знаю откуда к нему подступиться.
Я давно слежу за проектом, но все не знаю откуда к нему подступиться.
А вы бы попробовали програмно генерить AST кланга. Он, к моему глубочайшему сожалению, для этих целей не годится ни разу. API самого LLVM намного доступнее.
Здесь все равно какой фронтенд, т.к. в обоих случаях от него требуется только сгенерировать LLVM IR. Просто llvm-gcc, на мой взгляд, и собрать сложнее, и старее он.
clang еще очень молод, и некоторое количество кода он не в состоянии скомпилировать. Например, он лишь недавно научился собирать Boost. Ядро Linux он по-моему так и не может собрать до сих пор. Насчет старости — да, он уже немного староват, зато стабилен и им можно с гарантией собрать ВСЕ. Есть проект DragonEgg — плагин к GCC4.5+, который по сути применяет LLVM после парсинга исходников. В общем, можно много интересного еще написать, ждите новых статей от меня и моих коллег!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
LLVM изнутри: как это работает