在LLVM IR中添加评论?

edA*_*a-y 9 llvm

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

Eli*_*sky 5

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

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

  • 我会研究元数据.我希望输出严格调试我的IR生成器,而不是为了运行时或优化目的.它通常不会生成. (3认同)