我想创建一个包含多个操作数的MDNode指针。以下代码创建一个带有1个操作数的MDNode指针:
llvm::MDNode *MDNOdeNVVM = llvm::MDNode::get(*context, llvm::MDString::get(*context, "kernel"));
但我在LLVM手册中没有看到addOperand函数。那么是否有任何函数可以让我创建具有多个操作数的元数据?
答案 0 :(得分:1)
您需要创建MDTuple
。首先,在向量中创建操作数,然后创建元组。类似的东西:
SmallVector<Metadata *, 32> Ops;
Ops.push_back(llvm::MDString::get(*context, "linux"));
Ops.push_back(llvm::MDString::get(*context, "kernel"));
auto *Node = MDTuple::get(Context, Ops);