diff options
| author | Bob Wilson <bob.wilson@apple.com> | 2010-06-22 00:11:03 +0000 |
|---|---|---|
| committer | Bob Wilson <bob.wilson@apple.com> | 2010-06-22 00:11:03 +0000 |
| commit | 6e9b04004d3bde7e68ab57b369e6092683e54ae2 (patch) | |
| tree | 42b4ac723ce7fb0b0bff2db49907d655fac3f8db /lib/Transforms/Utils/CloneModule.cpp | |
| parent | 2e9616e9c1003f2bf4294ccd50a0ecf978075f5c (diff) | |
| download | external_llvm-6e9b04004d3bde7e68ab57b369e6092683e54ae2.zip external_llvm-6e9b04004d3bde7e68ab57b369e6092683e54ae2.tar.gz external_llvm-6e9b04004d3bde7e68ab57b369e6092683e54ae2.tar.bz2 | |
Include named metadata when cloning a module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106508 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/CloneModule.cpp')
| -rw-r--r-- | lib/Transforms/Utils/CloneModule.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/Transforms/Utils/CloneModule.cpp b/lib/Transforms/Utils/CloneModule.cpp index b87c082..1809bbb 100644 --- a/lib/Transforms/Utils/CloneModule.cpp +++ b/lib/Transforms/Utils/CloneModule.cpp @@ -122,6 +122,17 @@ Module *llvm::CloneModule(const Module *M, if (const Constant* C = I->getAliasee()) GA->setAliasee(cast<Constant>(MapValue(C, ValueMap))); } + + // And named metadata.... + for (Module::const_named_metadata_iterator I = M->named_metadata_begin(), + E = M->named_metadata_end(); I != E; ++I) { + const NamedMDNode &NMD = *I; + SmallVector<MDNode*, 4> MDs; + for (unsigned i = 0, e = NMD.getNumOperands(); i != e; ++i) + MDs.push_back(cast<MDNode>(MapValue(NMD.getOperand(i), ValueMap))); + NamedMDNode::Create(New->getContext(), NMD.getName(), + MDs.data(), MDs.size(), New); + } return New; } |
