[llvm-commits] CVS: llvm/lib/Transforms/Utils/CloneModule.cpp

Chris Lattner lattner at cs.uiuc.edu
Wed Jan 18 13:32:57 PST 2006



Changes in directory llvm/lib/Transforms/Utils:

CloneModule.cpp updated: 1.14 -> 1.15
---
Log message:

Make sure that cloning a module clones its target triple and dependent
library list as well.  This should help bugpoint.


---
Diffs of the changes:  (+7 -3)

 CloneModule.cpp |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)


Index: llvm/lib/Transforms/Utils/CloneModule.cpp
diff -u llvm/lib/Transforms/Utils/CloneModule.cpp:1.14 llvm/lib/Transforms/Utils/CloneModule.cpp:1.15
--- llvm/lib/Transforms/Utils/CloneModule.cpp:1.14	Wed Jul 27 01:12:34 2005
+++ llvm/lib/Transforms/Utils/CloneModule.cpp	Wed Jan 18 15:32:45 2006
@@ -30,14 +30,18 @@
   Module *New = new Module(M->getModuleIdentifier());
   New->setEndianness(M->getEndianness());
   New->setPointerSize(M->getPointerSize());
+  New->setTargetTriple(M->getTargetTriple());
 
-  // Copy all of the type symbol table entries over...
+  // Copy all of the type symbol table entries over.
   const SymbolTable &SymTab = M->getSymbolTable();
   SymbolTable::type_const_iterator TypeI = SymTab.type_begin();
   SymbolTable::type_const_iterator TypeE = SymTab.type_end();
-  for ( ; TypeI != TypeE; ++TypeI ) {
+  for (; TypeI != TypeE; ++TypeI)
     New->addTypeName(TypeI->first, TypeI->second);
-  }
+  
+  // Copy all of the dependent libraries over.
+  for (Module::lib_iterator I = M->lib_begin(), E = M->lib_end(); I != E; ++I)
+    New->addLibrary(*I);
 
   // Create the value map that maps things from the old module over to the new
   // module.






More information about the llvm-commits mailing list