From 143d15bc29bdd913c9bfa92123738bcd141013b9 Mon Sep 17 00:00:00 2001 From: Teresa Johnson Date: Wed, 20 Apr 2016 15:16:57 +0000 Subject: Re-enable "[gold-plugin] Disable name for values other than GlobalValue" This restores r266871 with a fix for gold tests relying on the value names, when using a release compiler, by adding a way to disable the default discarding. Update affected tests to use the new mechanism so that value names are preserved as expected, regardless of how the compiler was built. llvm-svn: 266881 --- llvm/tools/gold/gold-plugin.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'llvm/tools') diff --git a/llvm/tools/gold/gold-plugin.cpp b/llvm/tools/gold/gold-plugin.cpp index 42e93b1c58f..46a5f4668b1 100644 --- a/llvm/tools/gold/gold-plugin.cpp +++ b/llvm/tools/gold/gold-plugin.cpp @@ -166,8 +166,10 @@ namespace options { static unsigned Parallelism = 0; #ifdef NDEBUG static bool DisableVerify = true; + static bool DiscardValueNames = true; #else static bool DisableVerify = false; + static bool DiscardValueNames = false; #endif static std::string obj_path; static std::string extra_library_path; @@ -224,6 +226,10 @@ namespace options { message(LDPL_FATAL, "Invalid parallelism level: %s", opt_ + 5); } else if (opt == "disable-verify") { DisableVerify = true; + } else if (opt == "discard-value-names") { + DiscardValueNames = true; + } else if (opt == "no-discard-value-names") { + DiscardValueNames = false; } else { // Save this option to pass to the code generator. // ParseCommandLineOptions() expects argv[0] to be program name. Lazily @@ -1113,6 +1119,7 @@ static void thinLTOBackendTask(claimed_file &F, const void *View, raw_fd_ostream *OS, unsigned TaskID) { // Need to use a separate context for each task LLVMContext Context; + Context.setDiscardValueNames(options::DiscardValueNames); Context.enableDebugTypeODRUniquing(); // Merge debug info types. Context.setDiagnosticHandler(diagnosticHandlerForContext, nullptr, true); @@ -1235,6 +1242,7 @@ static ld_plugin_status allSymbolsReadHook(raw_fd_ostream *ApiFile) { } LLVMContext Context; + Context.setDiscardValueNames(options::DiscardValueNames); Context.enableDebugTypeODRUniquing(); // Merge debug info types. Context.setDiagnosticHandler(diagnosticHandlerForContext, nullptr, true); -- cgit v1.2.3