[lld] r267020 - [LTO] Discard names for values that are not global by default.

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 21 11:18:39 PDT 2016


On Thu, Apr 21, 2016 at 10:57 AM, Peter Collingbourne <peter at pcc.me.uk> wrote:
>
>
> On Thu, Apr 21, 2016 at 10:46 AM, Davide Italiano via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
>>
>> Author: davide
>> Date: Thu Apr 21 12:46:38 2016
>> New Revision: 267020
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=267020&view=rev
>> Log:
>> [LTO] Discard names for values that are not global by default.
>>
>> 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.
>>
>> Modified:
>>     lld/trunk/ELF/Driver.cpp
>>     lld/trunk/ELF/Options.td
>>     lld/trunk/test/ELF/lto/discard-value-names.ll
>>     lld/trunk/test/ELF/lto/type-merge2.ll
>>
>> Modified: lld/trunk/ELF/Driver.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=267020&r1=267019&r2=267020&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/ELF/Driver.cpp (original)
>> +++ lld/trunk/ELF/Driver.cpp Thu Apr 21 12:46:38 2016
>> @@ -289,7 +289,7 @@ void LinkerDriver::readConfigs(opt::Inpu
>>    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);
>>
>> Modified: lld/trunk/ELF/Options.td
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Options.td?rev=267020&r1=267019&r2=267020&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/ELF/Options.td (original)
>> +++ lld/trunk/ELF/Options.td Thu Apr 21 12:46:38 2016
>> @@ -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">;
>
>
> We probably don't want to name flags "-l(something)", as that would conflict
> with the -l flag. Can you please rename this "--lto-..."?
>
> (That is, if we want a flag for this at all. Have you considered gating this
> behavior behind -save-temps instead?)
>

I'm fine with one less flag (and using -save-temps), but I'm cc:ing
the other people involved to hear if they agree.


-- 
Davide

"There are no solved problems; there are only problems that are more
or less solved" -- Henri Poincare


More information about the llvm-commits mailing list