diff options
| author | Adrian Prantl <aprantl@apple.com> | 2017-05-19 23:32:21 +0000 |
|---|---|---|
| committer | Adrian Prantl <aprantl@apple.com> | 2017-05-19 23:32:21 +0000 |
| commit | 660437975baecbb78f9e33d3f976426039df3564 (patch) | |
| tree | 7be0b844a79b9b820a57704ae1c1688ab16d7ab9 /llvm/lib | |
| parent | 0de31c7e531a154e401cf0e639e78bdd76a06f6d (diff) | |
| download | bcm5719-llvm-660437975baecbb78f9e33d3f976426039df3564.tar.gz bcm5719-llvm-660437975baecbb78f9e33d3f976426039df3564.zip | |
Revert "ThinLTO: Verify bitcode before lauching the ThinLTOCodeGenerator."
This reverts commit r303438 while deliberating buildbot breakage.
llvm-svn: 303467
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/LTO/ThinLTOCodeGenerator.cpp | 35 | ||||
| -rw-r--r-- | llvm/lib/Transforms/IPO/FunctionImport.cpp | 5 |
2 files changed, 3 insertions, 37 deletions
diff --git a/llvm/lib/LTO/ThinLTOCodeGenerator.cpp b/llvm/lib/LTO/ThinLTOCodeGenerator.cpp index 769fe985078..327f2377d91 100644 --- a/llvm/lib/LTO/ThinLTOCodeGenerator.cpp +++ b/llvm/lib/LTO/ThinLTOCodeGenerator.cpp @@ -25,11 +25,9 @@ #include "llvm/Bitcode/BitcodeWriterPass.h" #include "llvm/ExecutionEngine/ObjectMemoryBuffer.h" #include "llvm/IR/DiagnosticPrinter.h" -#include "llvm/IR/DebugInfo.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/LegacyPassManager.h" #include "llvm/IR/Mangler.h" -#include "llvm/IR/Verifier.h" #include "llvm/IRReader/IRReader.h" #include "llvm/LTO/LTO.h" #include "llvm/Linker/Linker.h" @@ -64,7 +62,6 @@ namespace llvm { extern cl::opt<bool> LTODiscardValueNames; extern cl::opt<std::string> LTORemarksFilename; extern cl::opt<bool> LTOPassRemarksWithHotness; -extern cl::opt<bool> LTOStripInvalidDebugInfo; } namespace { @@ -145,30 +142,6 @@ static void promoteModule(Module &TheModule, const ModuleSummaryIndex &Index) { report_fatal_error("renameModuleForThinLTO failed"); } -namespace { -class ThinLTODiagnosticInfo : public DiagnosticInfo { - const Twine &Msg; -public: - ThinLTODiagnosticInfo(const Twine &DiagMsg, - DiagnosticSeverity Severity = DS_Error) - : DiagnosticInfo(DK_Linker, Severity), Msg(DiagMsg) {} - void print(DiagnosticPrinter &DP) const override { DP << Msg; } -}; -} - -/// Verify the module and strip broken debug info. -static void verifyLoadedModule(Module &TheModule) { - bool BrokenDebugInfo = false; - if (verifyModule(TheModule, &dbgs(), - LTOStripInvalidDebugInfo ? &BrokenDebugInfo : nullptr)) - report_fatal_error("Broken module found, compilation aborted!"); - if (BrokenDebugInfo) { - TheModule.getContext().diagnose(ThinLTODiagnosticInfo( - "Invalid debug info found, debug info will be stripped", DS_Warning)); - StripDebugInfo(TheModule); - } -} - static std::unique_ptr<Module> loadModuleFromBuffer(const MemoryBufferRef &Buffer, LLVMContext &Context, bool Lazy, bool IsImporting) { @@ -186,8 +159,6 @@ loadModuleFromBuffer(const MemoryBufferRef &Buffer, LLVMContext &Context, }); report_fatal_error("Can't load module, abort."); } - if (!Lazy) - verifyLoadedModule(*ModuleOrErr.get()); return std::move(ModuleOrErr.get()); } @@ -201,8 +172,7 @@ crossImportIntoModule(Module &TheModule, const ModuleSummaryIndex &Index, }; FunctionImporter Importer(Index, Loader); - Expected<bool> Result = - Importer.importFunctions(TheModule, ImportList, {verifyLoadedModule}); + Expected<bool> Result = Importer.importFunctions(TheModule, ImportList); if (!Result) { handleAllErrors(Result.takeError(), [&](ErrorInfoBase &EIB) { SMDiagnostic Err = SMDiagnostic(TheModule.getModuleIdentifier(), @@ -225,8 +195,7 @@ static void optimizeModule(Module &TheModule, TargetMachine &TM, PMB.OptLevel = OptLevel; PMB.LoopVectorize = true; PMB.SLPVectorize = true; - // Already did this in verifyLoadedModule(). - PMB.VerifyInput = false; + PMB.VerifyInput = true; PMB.VerifyOutput = false; legacy::PassManager PM; diff --git a/llvm/lib/Transforms/IPO/FunctionImport.cpp b/llvm/lib/Transforms/IPO/FunctionImport.cpp index 453fd17e1d4..231487923fa 100644 --- a/llvm/lib/Transforms/IPO/FunctionImport.cpp +++ b/llvm/lib/Transforms/IPO/FunctionImport.cpp @@ -646,8 +646,7 @@ void llvm::thinLTOInternalizeModule(Module &TheModule, // index. // Expected<bool> FunctionImporter::importFunctions( - Module &DestModule, const FunctionImporter::ImportMapTy &ImportList, - Optional<std::function<void(Module &)>> PostBitcodeLoading) { + Module &DestModule, const FunctionImporter::ImportMapTy &ImportList) { DEBUG(dbgs() << "Starting import for Module " << DestModule.getModuleIdentifier() << "\n"); unsigned ImportedCount = 0; @@ -755,8 +754,6 @@ Expected<bool> FunctionImporter::importFunctions( // Upgrade debug info after we're done materializing all the globals and we // have loaded all the required metadata! UpgradeDebugInfo(*SrcModule); - if (PostBitcodeLoading) - (*PostBitcodeLoading)(*SrcModule); // Link in the specified functions. if (renameModuleForThinLTO(*SrcModule, Index, &GlobalsToImport)) |

