如何获取 LLVM IR 指令的文本表示形式



如果I是类型llvm::Instruction,我们可以通过以下方式以人类可读的形式(文本表示(打印出相同的内容errs() << I;

我希望将完全相同的表示分配给 C 类型字符串std::string。我该怎么做?

好吧,LLVM也提供了一个字符串流:

#include <llvm/Support/raw_ostream.h>

像这样使用它:

std::string str;
llvm::raw_string_ostream(str) << I;
// use str

我在使用@eush77的答案时遇到了一些问题。这是我的解决方法。

std::string str;
llvm::raw_string_ostream ss(str);
ss << I;
errs() << ss.str() << "n";

最新更新