с кодом, я могу генерировать битовый код файл LLVM из модуля:генерировать машинный код непосредственно через LLVM API
llvm::Module * module;
// fill module with code
module = ...;
std::error_code ec;
llvm::raw_fd_ostream out("anonymous.bc", ec, llvm::sys::fs::F_None);
llvm::WriteBitcodeToFile(module, out);
Затем я могу использовать этот файл битового кода для создания исполняемого машинного кода файла, например:
clang -o anonymous anonymous.bc
В качестве альтернативы:
llc anonymous.bc
gcc -o anonymous anonymous.s
Теперь мой вопрос: могу ли я сгенерировать машинный код непосредственно на C++ с помощью LLVM API без необходимости писать файл битового кода?
Я ищу либо пример кода, либо, по крайней мере, некоторые отправные точки в LLVM API, например. какие классы использовать, подталкивая меня в правильном направлении, может быть даже достаточно.
Я не понял. Вам нужен сценарий оболочки, который использует инструменты LLVM для генерации машинного кода без промежуточных файлов, или вы хотите сделать это через LLVM API? – arrowd
Я признаю, формулировка вопроса была неоднозначной. Отредактировано для уточнения: я хочу сделать это через LLVM API. –
Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что это не сайт-дай-код. Боюсь, что, хотя я могу ответить на ваш вопрос с легкостью, я, конечно, не буду. Сделайте свою работу. – Puppy