2012-03-01 75 views

回答

2

有两件事你可以做。

  1. 将元数据节点附加到指令(如来自您引用的链接的!dbg节点)。为此,有Instruction::setMetadata方法
  2. 在模块中创建命名的元数据节点,不附加到任何特定的指令。为此,请使用Module::getOrInsertNamedMetadata
3

上述答案不完全正确(或完整)。您还可以在模块级别创建元数据,只需使用MDNode :: get(...),该元素需要一个上下文和一个值数组来创建元数据。命名的元数据非常重量级,您只能将其用作顶级元数据值的锚点。

对于附加说明,您确实希望使用指令上的setMetadata调用来设置任何特定的元数据,但是,您需要确保使用正确的上下文,否则可能会覆盖其他元数据。