В настоящее время я работаю над проектом компилятора с использованием llvm. Я следил за различными учебниками до того момента, когда у меня есть синтаксический анализатор для создания дерева синтаксиса, а затем дерево преобразуется в модуль llvm, используя предоставленный IRBuilder.
Моя цель - создать исполняемый файл, и я смущен как что делать дальше. Все обучающие материалы, которые я нашел, просто создают модуль llvm и распечатывают сборку с помощью Module.dump(). Кроме того, единственная документация, которую я могу найти, предназначена для разработчиков llvm, а не для конечных пользователей проекта.
Если я хочу сгенерировать машинный код, каковы следующие шаги? Проект llvm-mc выглядит так, как будто он может делать то, что я хочу, но я не могу найти на нем никакой документации.
Возможно, я ожидаю, что llvm сделает что-то, чего нет. Я ожидаю, что я смогу создать модуль, тогда будет API, который я могу вызвать с помощью модуля и целевой тройки, и будет создан объектный файл. Я нашел документацию и примеры по созданию JIT, и меня это не интересует. Я ищу, как создавать скомпилированные двоичные файлы.
Я работаю над OS X, если это имеет какое-то влияние.