[llvm-dev] Should @llvm.used be a NamedMDNode?
Vedant Kumar via llvm-dev
llvm-dev at lists.llvm.org
Wed Mar 2 16:19:05 PST 2016
Hi,
Should @llvm.used be a NamedMDNode instead of a GlobalVariable?
I think this would make it easier to mark globals as used. The current method
involves (1) copying the existing elements of @llvm.used into a container, (2)
erasing @llvm.used, (3) appending the new global to the container, (4)
re-creating @llvm.used (thereby polluting the ConstantArray cache?), and (5)
calling LLVMUsed->setSection("llvm.metadata"). See InstrProfiling::emitUses.
If we use NamedMDNode, this could be as simple as:
auto *LLVMUsed = M->getOrInsertNamedMetadata("llvm.used");
LLVMUsed->addOperand(ConstantAsMetadata::get(C));
I took a cursory look around and it doesn't seem like we really depend on
@llvm.used being a GlobalVariable.
Am I wrong about this? Other thoughts?
thanks
vedant
More information about the llvm-dev
mailing list