【发布时间】:2016-10-17 09:07:35
【问题描述】:
我正在尝试为我生成的 LLVM IR 生成元数据。我想生成表单的元数据:
!nvvm.annotations = !{!0}
!0 = metadata !{void ()* @foo, metadata !"kernel", i32 1}
其中 foo 是我的 LLVM IR 中的一个函数。现在我只能生成表单的元数据:
!nvvm.annotations = !{!0}
!0 = !{!"kernel"}
我使用以下代码生成上述元数据。
char metaDataArgument[512];
sprintf(metaDataArgument, "%s", pipelineKernelName);
llvm::NamedMDNode *nvvmMetadataNode = LLVMModule->getOrInsertNamedMetadata("nvvm.annotations");
llvm::MDNode *MDNOdeNVVM = llvm::MDNode::get(*context, llvm::MDString::get(*context, "kernel"));
nvvmMetadataNode->addOperand(MDNOdeNVVM);
谁能告诉我如何修改上面的代码来生成所需形式的元数据
【问题讨论】: