multiple metadata fields

Hello everyone,

As i saw that is not possible to add metadata to a basic block, it is possible to add more metadata fields to an instruction?

I saw that in the definition of setMetadata(), it updates/replaces the metadata if already existent. As far as I understand, updates=replaces, not updates OR replaces. I add metadata using :

LLVMContext& C = instr->getContext();
MDNode* N = MDNode::get(C, MDString::get(C, “var”));
instr->setMetadata(“varvar”, N);

Thank you in advance !