From 1e9e615f92179a4be8e1df70acf6329b0bb198a7 Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Fri, 22 Apr 2016 21:43:10 +0000 Subject: [PATCH] LTO: Merge -lto-no-discard-value-names with -save-temps. This patch is to remove -lto-no-discard-value-names flag and instead to use -save-temps as we discussed in the post-commit review thread for r267020. Differential Revision: http://reviews.llvm.org/D19437 llvm-svn: 267230 --- lld/ELF/Config.h | 1 - lld/ELF/Driver.cpp | 1 - lld/ELF/LTO.cpp | 6 +++++- lld/ELF/Options.td | 1 - lld/test/ELF/lto/discard-value-names.ll | 12 +----------- lld/test/ELF/lto/type-merge2.ll | 2 +- 6 files changed, 7 insertions(+), 16 deletions(-) diff --git a/lld/ELF/Config.h b/lld/ELF/Config.h index d15c254..54ef5b7 100644 --- a/lld/ELF/Config.h +++ b/lld/ELF/Config.h @@ -59,7 +59,6 @@ struct Configuration { bool Demangle = true; bool DisableVerify; bool DiscardAll; - bool DiscardValueNames; bool DiscardLocals; bool DiscardNone; bool EhFrameHdr; diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index 3cfd033..3bf2a53 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -284,7 +284,6 @@ void LinkerDriver::readConfigs(opt::InputArgList &Args) { Config->Demangle = !Args.hasArg(OPT_no_demangle); Config->DisableVerify = Args.hasArg(OPT_disable_verify); Config->DiscardAll = Args.hasArg(OPT_discard_all); - Config->DiscardValueNames = !Args.hasArg(OPT_lto_no_discard_value_names); Config->DiscardLocals = Args.hasArg(OPT_discard_locals); Config->DiscardNone = Args.hasArg(OPT_discard_none); Config->EhFrameHdr = Args.hasArg(OPT_eh_frame_hdr); diff --git a/lld/ELF/LTO.cpp b/lld/ELF/LTO.cpp index 6924977..33b4e18 100644 --- a/lld/ELF/LTO.cpp +++ b/lld/ELF/LTO.cpp @@ -87,7 +87,11 @@ static bool shouldInternalize(const SmallPtrSet &Used, BitcodeCompiler::BitcodeCompiler() : Combined(new llvm::Module("ld-temp.o", Context)), Mover(*Combined) { - Context.setDiscardValueNames(Config->DiscardValueNames); + // This is a flag to discard all but GlobalValue names. + // We want to enable it by default because it saves memory. + // Disable it only when a developer option (-save-temps) is given. + Context.setDiscardValueNames(!Config->SaveTemps); + Context.enableDebugTypeODRUniquing(); } diff --git a/lld/ELF/Options.td b/lld/ELF/Options.td index b4cee26..09f9649 100644 --- a/lld/ELF/Options.td +++ b/lld/ELF/Options.td @@ -245,7 +245,6 @@ def G : Separate<["-"], "G">; def alias_version_script_version_script : Joined<["--"], "version-script=">, Alias; // LTO-related options. -def lto_no_discard_value_names : Flag<["-"], "lto-no-discard-value-names">; def lto_jobs : Joined<["--"], "lto-jobs=">, HelpText<"Number of threads to run codegen">; def disable_verify : Flag<["-"], "disable-verify">; diff --git a/lld/test/ELF/lto/discard-value-names.ll b/lld/test/ELF/lto/discard-value-names.ll index dd40e75..c6cd94f 100644 --- a/lld/test/ELF/lto/discard-value-names.ll +++ b/lld/test/ELF/lto/discard-value-names.ll @@ -1,10 +1,7 @@ ; RUN: llvm-as %s -o %t.o -; RUN: ld.lld -m elf_x86_64 -lto-no-discard-value-names -shared -save-temps %t.o -o %t2.o -; RUN: llvm-dis < %t2.o.lto.bc | FileCheck %s - ; RUN: ld.lld -m elf_x86_64 -shared -save-temps %t.o -o %t2.o -; RUN: llvm-dis < %t2.o.lto.bc | FileCheck --check-prefix=NONAME %s +; RUN: llvm-dis < %t2.o.lto.bc | FileCheck %s ; CHECK: @GlobalValueName ; CHECK: @foo(i32 %in) @@ -13,13 +10,6 @@ ; CHECK: %add = add i32 %in, %GV ; CHECK: ret i32 %add -; NONAME: @GlobalValueName -; NONAME: @foo(i32) -; NONAME-NOT: somelabel: -; NONAME: %2 = load i32, i32* @GlobalValueName -; NONAME: %3 = add i32 %0, %2 -; NONAME: ret i32 %3 - target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/lld/test/ELF/lto/type-merge2.ll b/lld/test/ELF/lto/type-merge2.ll index 31d5974..f0931dd 100644 --- a/lld/test/ELF/lto/type-merge2.ll +++ b/lld/test/ELF/lto/type-merge2.ll @@ -1,6 +1,6 @@ ; RUN: llvm-as %s -o %t.o ; RUN: llvm-as %p/Inputs/type-merge2.ll -o %t2.o -; RUN: ld.lld -m elf_x86_64 %t.o %t2.o -o %t.so -shared -save-temps -lto-no-discard-value-names +; RUN: ld.lld -m elf_x86_64 %t.o %t2.o -o %t.so -shared -save-temps ; RUN: llvm-dis %t.so.lto.bc -o - | FileCheck %s target triple = "x86_64-unknown-linux-gnu" -- 2.7.4