diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2016-10-26 02:57:33 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2016-10-26 02:57:33 +0000 |
commit | 7b7bac367c49b8c5edd1bb7b98d8660047f007c6 (patch) | |
tree | 691c6e9826508eaa45a7f69433818f1676890249 /llvm/lib/Transforms/Utils/CloneModule.cpp | |
parent | 842e46e606b13e29b4136a455ad5d77249a7f9f4 (diff) | |
download | llvm-7b7bac367c49b8c5edd1bb7b98d8660047f007c6.zip llvm-7b7bac367c49b8c5edd1bb7b98d8660047f007c6.tar.gz llvm-7b7bac367c49b8c5edd1bb7b98d8660047f007c6.tar.bz2 |
Cloning: Also clone global variable attached metadata.
llvm-svn: 285161
Diffstat (limited to 'llvm/lib/Transforms/Utils/CloneModule.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/CloneModule.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/CloneModule.cpp b/llvm/lib/Transforms/Utils/CloneModule.cpp index 17e34c4..7ebeb61 100644 --- a/llvm/lib/Transforms/Utils/CloneModule.cpp +++ b/llvm/lib/Transforms/Utils/CloneModule.cpp @@ -119,6 +119,11 @@ std::unique_ptr<Module> llvm::CloneModule( } if (I->hasInitializer()) GV->setInitializer(MapValue(I->getInitializer(), VMap)); + + SmallVector<std::pair<unsigned, MDNode *>, 1> MDs; + I->getAllMetadata(MDs); + for (auto MD : MDs) + GV->addMetadata(MD.first, *MapMetadata(MD.second, VMap)); } // Similarly, copy over function bodies now... |