在LLVM IR中添加评论?

时间:2013-10-23 03:21:59

标签: llvm

是否可以在BasicBlock中添加注释?我只希望当我打印出IR进行调试时,我可以提供一些帮助我的评论。也就是说,一旦我将它们传递给优化器,我完全相信它们会丢失。

1 个答案:

答案 0 :(得分:5)

不,直接不可能。注释,您可能意味着在文本IR表示中以分号(;)开头的词法元素在内存中的IR(和二进制bitcode)中没有任何表示。您可能知道,LLVM IR有三个等效表示(在内存API级别,文本“汇编”级别,二进制bitcode级别)。一旦LLVM程序集IR解析器将代码读入内存,注释就会丢失。

然而,您可以做的是使用元数据来实现此目的。您可以创建附加到任何指令的任意元数据,以及全局模块级元数据。当然,这是一个黑客行为,但如果您确实认为您需要某种注释,那么元数据就是这样。 LLVM使用元数据来满足许多注释需求,例如调试信息和别名分析注释。