我想知道如何更改默认输出流以转储某个模块的生成的 IR。module->dump()
使用控制台打印输出。我在这里问问题之前做了一些搜索,但据我所知,我们应该使用 raw_ostream 类,我什至无法获得新实例。所以请告诉我如何正确获取一个实例, llvm::raw_ostream
以便我可以使用它 llvm::WriteBitcodeToFile
或任何其他转储 LLVM IR 的功能(我宁愿转储 IR,但也可以转储 bc)。非常感激 !
问问题
767 次
1 回答
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
方法的句柄。请注意,此文件是以附加模式打开的,您可能需要根据需要进行更改。
于 2013-08-14T02:56:57.903 回答