LTO: Merge debug info types when linking bitcode
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Sun, 17 Apr 2016 07:35:38 +0000 (07:35 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Sun, 17 Apr 2016 07:35:38 +0000 (07:35 +0000)
Make sure lld enables ODR type uniquing for debug info when invoking
LTO, as a follow-up to LLVM r266549.

llvm-svn: 266555

lld/COFF/InputFiles.cpp
lld/ELF/LTO.h

index c167ceb..c4d7028 100644 (file)
@@ -321,6 +321,7 @@ void BitcodeFile::parse() {
   // Usually parse() is thread-safe, but bitcode file is an exception.
   std::lock_guard<std::mutex> Lock(Mu);
 
+  Context.ensureDITypeMap();
   ErrorOr<std::unique_ptr<LTOModule>> ModOrErr = LTOModule::createFromBuffer(
       Context, MB.getBufferStart(), MB.getBufferSize(), llvm::TargetOptions());
   error(ModOrErr, "Could not create lto module");
index 8f74fb7..c06c49e 100644 (file)
@@ -40,7 +40,9 @@ public:
   std::vector<std::unique_ptr<InputFile>> compile();
 
   BitcodeCompiler()
-      : Combined(new llvm::Module("ld-temp.o", Context)), Mover(*Combined) {}
+      : Combined(new llvm::Module("ld-temp.o", Context)), Mover(*Combined) {
+    Context.ensureDITypeMap();
+  }
 
 private:
   std::vector<std::unique_ptr<InputFile>> runSplitCodegen();