[llvm] r324557 - gold-plugin: Do not set codegen opt level based on LTO opt level.
Chad Rosier via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 6 06:39:49 PDT 2018
Peter/Rafael,
Over the past few days I've been investigating several regressions with
our weekly LTO configuration. As a result, I identified that the
following regressions were due to this commit:
SPEC2006/h264ref: -2.68%
SPEC2006/libquantum: -4.36%
SPEC2006/perlbench: -2.67%
SPEC2017/mcf: -4.47%
SPEC2017/perlbench: -3.82%
I did not test SPEC2000, SPEC2006fp, or SPEC2017fp, but I'm seeing
similar small regressions in our weekly runs there as well (i.e., the
above is just what I was able to test last night, but isn't likely the
only regressions). I'd like to kindly request that this change be
reverted until something is in place to properly propagate the codegen
optimization level.
Chad
On 2/7/2018 9:41 PM, Peter Collingbourne via llvm-commits wrote:
> Author: pcc
> Date: Wed Feb 7 18:41:22 2018
> New Revision: 324557
>
> URL: http://llvm.org/viewvc/llvm-project?rev=324557&view=rev
> Log:
> gold-plugin: Do not set codegen opt level based on LTO opt level.
>
> The LTO opt level should not affect the codegen opt level, and indeed
> it does not affect it in lld. Ideally the codegen opt level should
> be controlled by an IR-level attribute based on the compile-time opt
> level, but that hasn't been implemented yet.
>
> Differential Revision: https://reviews.llvm.org/D43040
>
> Modified:
> llvm/trunk/tools/gold/gold-plugin.cpp
>
> Modified: llvm/trunk/tools/gold/gold-plugin.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/gold/gold-plugin.cpp?rev=324557&r1=324556&r2=324557&view=diff
> ==============================================================================
> --- llvm/trunk/tools/gold/gold-plugin.cpp (original)
> +++ llvm/trunk/tools/gold/gold-plugin.cpp Wed Feb 7 18:41:22 2018
> @@ -727,20 +727,6 @@ static int getOutputFileName(StringRef I
> return FD;
> }
>
> -static CodeGenOpt::Level getCGOptLevel() {
> - switch (options::OptLevel) {
> - case 0:
> - return CodeGenOpt::None;
> - case 1:
> - return CodeGenOpt::Less;
> - case 2:
> - return CodeGenOpt::Default;
> - case 3:
> - return CodeGenOpt::Aggressive;
> - }
> - llvm_unreachable("Invalid optimization level");
> -}
> -
> /// Parse the thinlto_prefix_replace option into the \p OldPrefix and
> /// \p NewPrefix strings, if it was specified.
> static void getThinLTOOldAndNewPrefix(std::string &OldPrefix,
> @@ -767,7 +753,6 @@ static std::unique_ptr<LTO> createLTO(In
>
> Conf.MAttrs = MAttrs;
> Conf.RelocModel = RelocationModel;
> - Conf.CGOptLevel = getCGOptLevel();
> Conf.DisableVerify = options::DisableVerify;
> Conf.OptLevel = options::OptLevel;
> if (options::Parallelism)
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list