现在我使用 clang 将我的 .c 文件构建为 .s 文件。我已经使用 llvm API 修改了 IR。但是,现在我无法将修改后的 IR 保存到文件中。我想使用“LLVMWriteBitcodeToFile”,但找不到“LLVMOpaqueModule”的结构;我想使用“WriteBitcodeToFile”,它总是显示“类型不匹配”。而且我还想知道如何将 IR 文件构建为可执行文件。
接下来是我用来保存模块的两种方法:
1、首先使用WriteBitcodeToFile
bool unbuffered = false;
llvm::raw_ostream ro(unbuffered);
WriteBitcodeToFile(m, ro);
2、第二次使用LLVMWriteBitcodeToFile
const char *Path = "hello2.s";
int ans = LLVMWriteBitcodeToFile(m, Path);
注意:m 是 Module 实例的一个点