Возможно автоматическое создание кода llvm C++ api из LLVM-IR?

The clang 3.0 онлайн демо-страница http://llvm.org/demo/index.cgi предоставляет возможность вывода кода API LLVM C++", представляющего LLVM-IR для входной программы.

" производит код API LLVM C++ " выводит опцию clang (и если да, то что это такое)?

или это опция инструмента llvm (какой)?

можно ли сделать то же самое, но с ввода LLVM-IR? В основном я хотел бы видеть правильные вызовы llvm C++ api, необходимые для создания конкретная заданная последовательность llvm-ir. Я хотел бы учиться назад на примере, а не вперед из документации.

ручные страницы и --help и --help-hidden для clang, llvm-as и llvm-dis не показывают ничего очевидного.

edit: OK теперь я вижу в выводе на этой веб-странице "сгенерированный llvm2cpp". Но я не могу найти этот инструмент в последних выпусках llvm, только старых выпусках, имеет новый инструмент в 2.9 и 3.0, принятый за llvm2cpp?

2 ответов


да. C++ backend-это инструмент, который делает это. ООО " Три " - март=cpp foo.до н. э."


Я столкнулся с точно такой же проблемой и видел CPPBuilder, упомянутый пару раз. Этот подход, к сожалению, больше не работает на последних версиях LLVM, поскольку CPPBackend был удален между 3.8 и 3.9.

Если вы хотите cpp backend, вам (i) нужно настроить llvm и добавить cppbackend в-DLLVM_TARGETS_TO_BUILD во время начальной настройки и (ii) запустить llvm

функция была удалена, потому что она не использовала IRBuilder и почти никто не использовал его. Мое решение состояло в том, чтобы полагаться на старую версию, чтобы вдохновиться, а затем реализовать ее самостоятельно.