【发布时间】:2016-01-16 00:40:16
【问题描述】:
使用以下代码,我可以从一个模块生成一个LLVM 位码文件:
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 工具生成没有中间文件的机器代码的 shell 脚本,或者您想通过 LLVM API 来实现?
-
我承认,问题的措辞模棱两可。编辑澄清:我想通过 LLVM API 来做。
-
我投票结束这个问题作为题外话,因为这不是一个给我的代码网站。恐怕,虽然我可以轻松回答你的问题,但我肯定不会。做好自己的工作。
-
谢谢,@Puppy,你这么有帮助,你为什么还要使用 stackoverflow?
-
原因有很多,但是写代码给懒人复制粘贴不是其中之一。
标签: llvm llvm-c++-api