Skip to content

Commit

Permalink
[LTO] Discard names for values that are not global by default.
Browse files Browse the repository at this point in the history
Rafael reported on the mailing list that this reduces peak memory
usage while linking llvm-as by 15%. It makes sense to make it
the default, and introduce an inverse knob -lto-no-discard-value-names
for those who want to restore the old behavior.

llvm-svn: 267020
  • Loading branch information
dcci committed Apr 21, 2016
1 parent 3ac0718 commit 5abcb3c
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion lld/ELF/Driver.cpp
Expand Up @@ -289,7 +289,7 @@ 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_discard_value_names);
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);
Expand Down
2 changes: 1 addition & 1 deletion lld/ELF/Options.td
Expand Up @@ -238,7 +238,7 @@ def G : Separate<["-"], "G">;
def alias_version_script_version_script : Joined<["--"], "version-script=">, Alias<version_script>;

// LTO-related options.
def lto_discard_value_names : Flag<["-"], "lto-discard-value-names">;
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">;
Expand Down
4 changes: 2 additions & 2 deletions lld/test/ELF/lto/discard-value-names.ll
@@ -1,9 +1,9 @@
; RUN: llvm-as %s -o %t.o

; RUN: ld.lld -m elf_x86_64 -shared -save-temps %t.o -o %t2.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 -lto-discard-value-names -shared -save-temps %t.o -o %t2.o
; 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

; CHECK: @GlobalValueName
Expand Down
2 changes: 1 addition & 1 deletion 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
; RUN: ld.lld -m elf_x86_64 %t.o %t2.o -o %t.so -shared -save-temps -lto-no-discard-value-names
; RUN: llvm-dis %t.so.lto.bc -o - | FileCheck %s

target triple = "x86_64-unknown-linux-gnu"
Expand Down

0 comments on commit 5abcb3c

Please sign in to comment.