Как сгенерировать машинный код с помощью llvm

В настоящее время я работаю над проектом компилятора, используя llvm. Я следовал различным учебникам до того момента, когда у меня есть парсер для создания синтаксического дерева, а затем дерево преобразуется в модуль llvm с использованием предоставленного IRBuilder.

Моя цель - создать исполняемый файл, и я не понимаю, что делать дальше. Все учебники ямы нашли, просто создадим модуль llvm и распечатаем сборку с помощью Module.dump (). Кроме того, единственная документация, которую я могу найти, предназначена для разработчиков llvm, а не для конечных пользователей проекта.

Если я хочу сгенерировать машинный код, каковы следующие шаги? Похоже, что проект llvm-mc может делать то, что я хочу, но я могуне могу найти какую-либо документацию по нему.

Возможно яЯ ожидаю, что llvm сделает что-то, что не делаетт. Я ожидаю, что я смогу построить модуль, тогда будет API, который я могу вызвать с модулем, и будет получена целевая тройка и объектный файл. Я нашел документацию и примеры по созданию JIT, и я не заинтересован в этом. Я ищу, как создавать скомпилированные двоичные файлы.

Я работаю над OS X, если это как-то повлияет.

Ответы на вопрос(4)

Ваш ответ на вопрос