[PATCH] D43040: gold-plugin: Do not set codegen opt level based on LTO opt level.
Rafael Avila de Espindola via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 7 16:27:12 PST 2018
It sounds reasonable. It is also nice to have lld and gold agree on
this, but could expand a bit on why it is a bad idea to set it on the
linker?
Cheers,
Rafael
Peter Collingbourne <peter at pcc.me.uk> writes:
> We use CodeGenOpt::Default (i.e. 2).
>
> Peter
>
> On Wed, Feb 7, 2018 at 3:44 PM, Rafael Avila de Espindola <
> rafael.espindola at gmail.com> wrote:
>
>> What level is used without a IR attribute or Conf.CGOptLevel being set?
>>
>> Cheers,
>> Rafael
>>
>> Peter Collingbourne via Phabricator via llvm-commits
>> <llvm-commits at lists.llvm.org> writes:
>>
>> > pcc created this revision.
>> > pcc added reviewers: tejohnson, eugenis.
>> > Herald added subscribers: inglorion, mehdi_amini.
>> >
>> > 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.
>> >
>> >
>> > https://reviews.llvm.org/D43040
>> >
>> > Files:
>> > llvm/tools/gold/gold-plugin.cpp
>> >
>> >
>> > Index: llvm/tools/gold/gold-plugin.cpp
>> > ===================================================================
>> > --- llvm/tools/gold/gold-plugin.cpp
>> > +++ llvm/tools/gold/gold-plugin.cpp
>> > @@ -727,20 +727,6 @@
>> > 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 @@
>> >
>> > Conf.MAttrs = MAttrs;
>> > Conf.RelocModel = RelocationModel;
>> > - Conf.CGOptLevel = getCGOptLevel();
>> > Conf.DisableVerify = options::DisableVerify;
>> > Conf.OptLevel = options::OptLevel;
>> > if (options::Parallelism)
>> >
>> >
>> > Index: llvm/tools/gold/gold-plugin.cpp
>> > ===================================================================
>> > --- llvm/tools/gold/gold-plugin.cpp
>> > +++ llvm/tools/gold/gold-plugin.cpp
>> > @@ -727,20 +727,6 @@
>> > 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 @@
>> >
>> > 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
>>
>
>
>
> --
> --
> Peter
More information about the llvm-commits
mailing list