Compiler construction 在llvm过程中打印类型非常好的值

Compiler construction 在llvm过程中打印类型非常好的值,compiler-construction,clang,llvm,Compiler Construction,Clang,Llvm,我试图打印循环中使用的值的类型和名称,如下所示: (value->getType())->print(COUT); errs() << " type: " << COUT.str() << " "; errs() << " name: " << (value->getName()) << "\n"; 是否可以按照程序中使用的方式漂亮地打印字体?例如,获取如下内容: type: int

我试图打印循环中使用的值的类型和名称,如下所示:

(value->getType())->print(COUT);
errs() << "     type: " << COUT.str() << " ";
errs() << "     name: " << (value->getName()) << "\n";
是否可以按照程序中使用的方式漂亮地打印字体?例如,获取如下内容:

type: int      name: sum
type: struct Book      name: books

您应该编写自己的函数。例如,请参阅原始函数。

否,无法完成。LLVM名称和源名称之间没有保证的映射;可能没有对应于给定LLVM类型的源类型,或者有多个源类型

如果您对特定前端如何将源类型转换为LLVM类型有详细的了解,您甚至只能尝试这样做。即使这样,它也仅在该方案的限制范围内-例如,我的前端为类型和函数创建GUID名称

type: int      name: sum
type: struct Book      name: books