LLVM-更改默认输出流

  • 本文关键字:输出流 默认 LLVM- llvm
  • 更新时间 :
  • 英文 :


我想知道如何更改用于转储某个模块生成的IR的默认输出流。module->dump()使用控制台打印输出。在这里提问之前,我做了一些搜索,但据我所知,我们应该使用raw_ostream类,而我甚至无法获得新的实例。因此,请告诉我如何正确地获得llvm::raw_ostream的实例,以便使用它llvm::WriteBitcodeToFile或任何其他转储LLVM IR的函数(我宁愿最好转储IR,但转储bc也可以)。非常感谢!

如果使用Module类的print方法,则可以指定自己选择的输出流。

输出流可以如下获得:

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方法的句柄。请注意,此文件是以附加模式打开的,您可能需要根据需要进行更改。

最新更新