我想知道如何更改默认输出流以转储特定模块的生成IR。 module->dump()
使用控制台打印输出。我在问这里之前做了一些搜索,但据我所知,我们应该使用raw_ostream类,我甚至无法获得新的实例。所以请告诉我如何才能正确获取llvm::raw_ostream
的实例,以便我可以使用它llvm::WriteBitcodeToFile
或任何其他转储LLVM IR的函数(我宁愿转储IR,但dumpint bc还可以也)。非常感谢!
答案 0 :(得分:1)
如果使用print
类的Module
方法,则可以指定所选的输出流。
可以按如下方式获得输出流:
std::string errorMessage = "";
raw_fd_ostream example_ostream("example_filename", errorMessage, raw_fd_ostream::F_Append);
if(!errorMessage.empty())
errs() << "Error opening " << example_filename << "\n";
example_ostream
是您需要传递给print
方法的句柄。请注意,此文件以追加模式打开,您可能希望根据需要进行更改。