diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2008-10-09 06:27:14 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2008-10-09 06:27:14 +0000 |
commit | 2b8703f1027bac610e8b073429a5298b3a08db5d (patch) | |
tree | 7ce228476bf332a2532afa59c18f5570c6b388a7 | |
parent | 418b09b33f9811ff35f0f5f774d3a93bb8083494 (diff) | |
download | external_llvm-2b8703f1027bac610e8b073429a5298b3a08db5d.zip external_llvm-2b8703f1027bac610e8b073429a5298b3a08db5d.tar.gz external_llvm-2b8703f1027bac610e8b073429a5298b3a08db5d.tar.bz2 |
Don't drop alignment on globals when cloning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57320 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/Utils/CloneModule.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/Transforms/Utils/CloneModule.cpp b/lib/Transforms/Utils/CloneModule.cpp index c94c531..337fa8a 100644 --- a/lib/Transforms/Utils/CloneModule.cpp +++ b/lib/Transforms/Utils/CloneModule.cpp @@ -55,10 +55,14 @@ Module *llvm::CloneModule(const Module *M, // don't worry about attributes or initializers, they will come later. // for (Module::const_global_iterator I = M->global_begin(), E = M->global_end(); - I != E; ++I) - ValueMap[I] = new GlobalVariable(I->getType()->getElementType(), false, - GlobalValue::ExternalLinkage, 0, - I->getName(), New); + I != E; ++I) { + GlobalVariable *GV = new GlobalVariable(I->getType()->getElementType(), + false, + GlobalValue::ExternalLinkage, 0, + I->getName(), New); + GV->setAlignment(I->getAlignment()); + ValueMap[I] = GV; + } // Loop over the functions in the module, making external functions as before for (Module::const_iterator I = M->begin(), E = M->end(); I != E; ++I) { @@ -66,7 +70,7 @@ Module *llvm::CloneModule(const Module *M, Function::Create(cast<FunctionType>(I->getType()->getElementType()), GlobalValue::ExternalLinkage, I->getName(), New); NF->copyAttributesFrom(I); - ValueMap[I]= NF; + ValueMap[I] = NF; } // Loop over the aliases in the module |