From: NAKAMURA Takumi Date: Sun, 1 Mar 2015 04:16:28 +0000 (+0000) Subject: Revert r230655, "gold-plugin: "Upgrade" debug info and handle its warnings." X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=a18f49225a39436782715e28c31bbd67babeba9b;p=oota-llvm.git Revert r230655, "gold-plugin: "Upgrade" debug info and handle its warnings." It emits *millions of warnings* during selfhosting LTO build, to choke the buildbot with gigbytes of log. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230885 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/tools/gold/Inputs/drop-debug.bc b/test/tools/gold/Inputs/drop-debug.bc deleted file mode 100644 index f9c471f8e0d..00000000000 Binary files a/test/tools/gold/Inputs/drop-debug.bc and /dev/null differ diff --git a/test/tools/gold/drop-debug.ll b/test/tools/gold/drop-debug.ll deleted file mode 100644 index b8c4d8c62a9..00000000000 --- a/test/tools/gold/drop-debug.ll +++ /dev/null @@ -1,8 +0,0 @@ -; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \ -; RUN: --plugin-opt=emit-llvm -shared %p/Inputs/drop-debug.bc \ -; RUN: -o t2.bc 2>&1 | FileCheck %s - -; drop-debug.bc was created from "void f(void) {}" with clang 3.5 and -; -gline-tables-only, so it contains old debug info. - -; CHECK: warning: LLVM gold plugin: ignoring debug info with an invalid version (1) in {{.*}}/Inputs/drop-debug.bc diff --git a/tools/gold/gold-plugin.cpp b/tools/gold/gold-plugin.cpp index e3a57b55f33..e654a1581f7 100644 --- a/tools/gold/gold-plugin.cpp +++ b/tools/gold/gold-plugin.cpp @@ -20,7 +20,6 @@ #include "llvm/Bitcode/ReaderWriter.h" #include "llvm/CodeGen/Analysis.h" #include "llvm/CodeGen/CommandFlags.h" -#include "llvm/IR/AutoUpgrade.h" #include "llvm/IR/Constants.h" #include "llvm/IR/DiagnosticInfo.h" #include "llvm/IR/DiagnosticPrinter.h" @@ -274,11 +273,11 @@ static bool shouldSkip(uint32_t Symflags) { } static void diagnosticHandler(const DiagnosticInfo &DI, void *Context) { - if (const auto *BDI = dyn_cast(&DI)) { - std::error_code EC = BDI->getError(); - if (EC == BitcodeError::InvalidBitcodeSignature) - return; - } + assert(DI.getSeverity() == DS_Error && "Only expecting errors"); + const auto &BDI = cast(DI); + std::error_code EC = BDI.getError(); + if (EC == BitcodeError::InvalidBitcodeSignature) + return; std::string ErrStorage; { @@ -286,21 +285,8 @@ static void diagnosticHandler(const DiagnosticInfo &DI, void *Context) { DiagnosticPrinterRawOStream DP(OS); DI.print(DP); } - ld_plugin_level Level; - switch (DI.getSeverity()) { - case DS_Error: - message(LDPL_FATAL, "LLVM gold plugin has failed to create LTO module: %s", - ErrStorage.c_str()); - llvm_unreachable("Fatal doesn't return."); - case DS_Warning: - Level = LDPL_WARNING; - break; - case DS_Remark: - case DS_Note: - Level = LDPL_INFO; - break; - } - message(Level, "LLVM gold plugin: %s", ErrStorage.c_str()); + message(LDPL_FATAL, "LLVM gold plugin has failed to create LTO module: %s", + ErrStorage.c_str()); } /// Called by gold to see whether this file is one that our plugin can handle. @@ -575,7 +561,7 @@ static void freeSymName(ld_plugin_symbol &Sym) { static std::unique_ptr getModuleForFile(LLVMContext &Context, claimed_file &F, - ld_plugin_input_file &Info, raw_fd_ostream *ApiFile, + off_t Filesize, raw_fd_ostream *ApiFile, StringSet<> &Internalize, StringSet<> &Maybe) { if (get_symbols(F.handle, F.syms.size(), &F.syms[0]) != LDPS_OK) @@ -585,8 +571,7 @@ getModuleForFile(LLVMContext &Context, claimed_file &F, if (get_view(F.handle, &View) != LDPS_OK) message(LDPL_FATAL, "Failed to get a view of file"); - MemoryBufferRef BufferRef(StringRef((const char *)View, Info.filesize), - Info.name); + MemoryBufferRef BufferRef(StringRef((const char *)View, Filesize), ""); ErrorOr> ObjOrErr = object::IRObjectFile::create(BufferRef, Context); @@ -598,8 +583,6 @@ getModuleForFile(LLVMContext &Context, claimed_file &F, Module &M = Obj.getModule(); - UpgradeDebugInfo(M); - SmallPtrSet Used; collectUsedGlobalVariables(M, Used, /*CompilerUsed*/ false); @@ -809,8 +792,6 @@ static ld_plugin_status allSymbolsReadHook(raw_fd_ostream *ApiFile) { return LDPS_OK; LLVMContext Context; - Context.setDiagnosticHandler(diagnosticHandler); - std::unique_ptr Combined(new Module("ld-temp.o", Context)); Linker L(Combined.get()); @@ -823,7 +804,8 @@ static ld_plugin_status allSymbolsReadHook(raw_fd_ostream *ApiFile) { if (get_input_file(F.handle, &File) != LDPS_OK) message(LDPL_FATAL, "Failed to get file information"); std::unique_ptr M = - getModuleForFile(Context, F, File, ApiFile, Internalize, Maybe); + getModuleForFile(Context, F, File.filesize, ApiFile, + Internalize, Maybe); if (!options::triple.empty()) M->setTargetTriple(options::triple.c_str()); else if (M->getTargetTriple().empty()) {