Лучший способ узнать, как использовать код, — изучить примеры, которые вам дали.
Существуют руководства о том, как использовать инструменты clang/llvm для компиляции кода C++ и создания LLVM-IR, для компиляции LLVM-IR в LLVM-Bitcode и выполнения этого LLVM-bitcode. Все, что необходимо, чтобы научиться включать эту функциональность в наше приложение, — это исследовать путь выполнения этих инструментов, чтобы найти последовательность методов, которые выполняют то, что мы хотим.
Вот пример использования примеров инструментов для компиляции файла cpp в llvm-bitcode и его выполнения.
clang++ -c -O3 -emit-llvm main.cpp -o main.bc
lli main.bc
Это отличное начало, мы можем просто посмотреть на источник инструментов и исследовать путь выполнения, указанный в аргументах. Поскольку эти инструменты представляют собой просто интерфейсы, раскрывающие базовые функции, доступные в библиотеках llvm/clang, которые мы можем добавить в наш проект, неглубокое следование по пути выполнения даст нам последовательность доступных в библиотеке методов, которые мы можем вызывать в нашем приложении для выполнения того же самого. полученные результаты.
Как только последовательность библиотечных методов тривиально установлена, вы можете углубиться в разбивку отдельных библиотечных методов на их базовую функциональность и выявить точное поведение, которое мы желаем, с помощью относительно небольшого набора модификаций здесь и там, вместо того, чтобы пытаться заново реализовать что-то из исходного кода. измельчить.
person
SteamyThePunk
schedule
01.09.2016