【问题标题】:How do I create named metadata via the llvm-c api?如何通过 llvm-c api 创建命名元数据?
【发布时间】:2011-11-03 16:24:20
【问题描述】:

我想将调试元数据添加到我生成的 llvm IR 中,它是通过 C API 创建的。但是,我不知道如何创建命名元数据节点(例如!llvm.dbg.cu),甚至不知道如何创建具有唯一编号的元数据节点(即!0、!1 等)。在指令中添加元数据操作数看起来很简单,但我不知道如何创建独立的元数据节点。

【问题讨论】:

    标签: c metadata llvm


    【解决方案1】:

    在 LLVM 3.0 中,C API 中没有公开用于创建或修改命名元数据的函数。在 3.0 版本之后,一个新函数 (LLVMAddNamedMetadataOperand) 是 recently added to the API

    如果您愿意从源代码构建 LLVM,则可以从主干获得此支持。请参阅Getting Started 页面了解如何构建 LLVM。否则你将不得不等到 LLVM 3.1 发布。

    当函数可用时,调用就很简单了:

    LLVMAddNamedMetadataOperand(module, "named_md_name", mdnode);
    

    如果没有名为“named_md_name”的命名元数据,则将创建一个。否则将更新现有对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-13
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 2020-11-04
      • 1970-01-01
      相关资源
      最近更新 更多