任何人都可以指出我使用C++ api将元数据附加到llvm-ir的具体示例吗?我已阅读此页http://llvm.org/docs/SourceLevelDebugging.html。如何使用C++ API将元数据附加到LLVM IR?
谢谢
任何人都可以指出我使用C++ api将元数据附加到llvm-ir的具体示例吗?我已阅读此页http://llvm.org/docs/SourceLevelDebugging.html。如何使用C++ API将元数据附加到LLVM IR?
谢谢
有两件事你可以做。
!dbg
节点)。为此,有Instruction::setMetadata
方法Module::getOrInsertNamedMetadata
。上述答案不完全正确(或完整)。您还可以在模块级别创建元数据,只需使用MDNode :: get(...),该元素需要一个上下文和一个值数组来创建元数据。命名的元数据非常重量级,您只能将其用作顶级元数据值的锚点。
对于附加说明,您确实希望使用指令上的setMetadata调用来设置任何特定的元数据,但是,您需要确保使用正确的上下文,否则可能会覆盖其他元数据。