<div dir="auto"><div>Unfortunately reverting would regress the user that requested this patch. They use -plugin-opt=O0 and expect performance consistent with setting cg opt level to default.<div dir="auto"><br></div><div dir="auto">Instead of reverting can we make a change that just sets the cg opt level to aggressive if -plugin-opt=O3 is passed?</div><div dir="auto"><br></div><div dir="auto">Peter</div><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Apr 6, 2018, 09:18 Chad Rosier <<a href="mailto:mcrosier@codeaurora.org">mcrosier@codeaurora.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks, Rafael.  Sound reasonable to you, Peter?<br>
<br>
<br>
On 4/6/2018 12:12 PM, Rafael Avila de Espindola wrote:<br>
> I am OK with reverting it until we have a better framework in place.<br>
><br>
> Cheers,<br>
> Rafael<br>
><br>
> Chad Rosier via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" rel="noreferrer">llvm-commits@lists.llvm.org</a>> writes:<br>
><br>
>> Peter/Rafael,<br>
>><br>
>> Over the past few days I've been investigating several regressions with<br>
>> our weekly LTO configuration.  As a result, I identified that the<br>
>> following regressions were due to this commit:<br>
>><br>
>> SPEC2006/h264ref: -2.68%<br>
>> SPEC2006/libquantum: -4.36%<br>
>> SPEC2006/perlbench: -2.67%<br>
>> SPEC2017/mcf: -4.47%<br>
>> SPEC2017/perlbench: -3.82%<br>
>><br>
>> I did not test SPEC2000, SPEC2006fp, or SPEC2017fp, but I'm seeing<br>
>> similar small regressions in our weekly runs there as well (i.e., the<br>
>> above is just what I was able to test last night, but isn't likely the<br>
>> only regressions).  I'd like to kindly request that this change be<br>
>> reverted until something is in place to properly propagate the codegen<br>
>> optimization level.<br>
>><br>
>>    Chad<br>
>><br>
>><br>
>> On 2/7/2018 9:41 PM, Peter Collingbourne via llvm-commits wrote:<br>
>>> Author: pcc<br>
>>> Date: Wed Feb  7 18:41:22 2018<br>
>>> New Revision: 324557<br>
>>><br>
>>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=324557&view=rev" rel="noreferrer noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=324557&view=rev</a><br>
>>> Log:<br>
>>> gold-plugin: Do not set codegen opt level based on LTO opt level.<br>
>>><br>
>>> The LTO opt level should not affect the codegen opt level, and indeed<br>
>>> it does not affect it in lld. Ideally the codegen opt level should<br>
>>> be controlled by an IR-level attribute based on the compile-time opt<br>
>>> level, but that hasn't been implemented yet.<br>
>>><br>
>>> Differential Revision: <a href="https://reviews.llvm.org/D43040" rel="noreferrer noreferrer" target="_blank">https://reviews.llvm.org/D43040</a><br>
>>><br>
>>> Modified:<br>
>>>       llvm/trunk/tools/gold/gold-plugin.cpp<br>
>>><br>
>>> Modified: llvm/trunk/tools/gold/gold-plugin.cpp<br>
>>> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/gold/gold-plugin.cpp?rev=324557&r1=324556&r2=324557&view=diff" rel="noreferrer noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/gold/gold-plugin.cpp?rev=324557&r1=324556&r2=324557&view=diff</a><br>
>>> ==============================================================================<br>
>>> --- llvm/trunk/tools/gold/gold-plugin.cpp (original)<br>
>>> +++ llvm/trunk/tools/gold/gold-plugin.cpp Wed Feb  7 18:41:22 2018<br>
>>> @@ -727,20 +727,6 @@ static int getOutputFileName(StringRef I<br>
>>>      return FD;<br>
>>>    }<br>
>>><br>
>>> -static CodeGenOpt::Level getCGOptLevel() {<br>
>>> -  switch (options::OptLevel) {<br>
>>> -  case 0:<br>
>>> -    return CodeGenOpt::None;<br>
>>> -  case 1:<br>
>>> -    return CodeGenOpt::Less;<br>
>>> -  case 2:<br>
>>> -    return CodeGenOpt::Default;<br>
>>> -  case 3:<br>
>>> -    return CodeGenOpt::Aggressive;<br>
>>> -  }<br>
>>> -  llvm_unreachable("Invalid optimization level");<br>
>>> -}<br>
>>> -<br>
>>>    /// Parse the thinlto_prefix_replace option into the \p OldPrefix and<br>
>>>    /// \p NewPrefix strings, if it was specified.<br>
>>>    static void getThinLTOOldAndNewPrefix(std::string &OldPrefix,<br>
>>> @@ -767,7 +753,6 @@ static std::unique_ptr<LTO> createLTO(In<br>
>>><br>
>>>      Conf.MAttrs = MAttrs;<br>
>>>      Conf.RelocModel = RelocationModel;<br>
>>> -  Conf.CGOptLevel = getCGOptLevel();<br>
>>>      Conf.DisableVerify = options::DisableVerify;<br>
>>>      Conf.OptLevel = options::OptLevel;<br>
>>>      if (options::Parallelism)<br>
>>><br>
>>><br>
>>> _______________________________________________<br>
>>> llvm-commits mailing list<br>
>>> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank" rel="noreferrer">llvm-commits@lists.llvm.org</a><br>
>>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
>> _______________________________________________<br>
>> llvm-commits mailing list<br>
>> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank" rel="noreferrer">llvm-commits@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
<br>
</blockquote></div></div></div>