All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Desaulniers <ndesaulniers@google.com>
To: Nathan Chancellor <nathan@kernel.org>
Cc: Masahiro Yamada <masahiroy@kernel.org>,
	Huacai Chen <chenhuacai@kernel.org>,
	 Jiaxun Yang <jiaxun.yang@flygoat.com>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	 linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org,
	 llvm@lists.linux.dev
Subject: Re: [PATCH 2/2] MIPS: Loongson64: Wrap -mno-branch-likely with cc-option
Date: Mon, 24 Jan 2022 14:49:29 -0800	[thread overview]
Message-ID: <CAKwvOdmri9H_yCkN=Rr26UqZgFoXoGPM+41gBS15X1=zGSg_3A@mail.gmail.com> (raw)
In-Reply-To: <Ye8qOloosgFyY8v8@archlinux-ax161>

On Mon, Jan 24, 2022 at 2:37 PM Nathan Chancellor <nathan@kernel.org> wrote:
>
> On Mon, Jan 24, 2022 at 12:40:58PM -0800, Nick Desaulniers wrote:
> > On Thu, Jan 20, 2022 at 1:40 PM Nathan Chancellor <nathan@kernel.org> wrote:
> > >
> > > This flag is not supported by clang, which results in a warning:
> > >
> > >   clang-14: warning: argument unused during compilation: '-mno-branch-likely' [-Wunused-command-line-argument]
> > >
> > > This breaks cc-option, which adds -Werror to make this warning fatal and
> > > catch flags that are not supported. Wrap the flag in cc-option so that
> > > it does not cause cc-option to fail, which can cause randconfigs to be
> > > really noisy.
> > >
> > > Signed-off-by: Nathan Chancellor <nathan@kernel.org>
> >
> > We should convert more of these tests to Kconfig checks that run once
> > per configuration, rather than multiple times for a build. IIRC Linus
> > mentioned this somewhere...yeah, the -Wimplicit-fallthrough patches.
> > See
> > dee2b702bcf06 ("kconfig: Add support for -Wimplicit-fallthrough")
> >
> > I wonder if we can check ARCH or SUBARCH in Kconfig to limit invoking
> > the tool under test for certain arch specific command line flags?
> >
> > I'll take this patch over such a larger change, but I think towards
> > the goal of speeding up already configured builds, we eventually want
> > to be migrating cc-option and ld-option checks to Kconfig.
> >
> > Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
>
> Something like this appears to work, if that is more preferrable?
>
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index 058446f01487..a27a3ade810e 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -3232,3 +3232,9 @@ endmenu
>  source "arch/mips/kvm/Kconfig"
>
>  source "arch/mips/vdso/Kconfig"
> +
> +config CC_MNO_BRANCH_LIKELY
> +       string
> +       default "-mno-branch-likely"
> +       depends on MACH_LOONGSON64 || MACH_LOONGSON2EF
> +       depends on $(cc-option,-mno-branch-likely)
> diff --git a/arch/mips/loongson2ef/Platform b/arch/mips/loongson2ef/Platform
> index 50e659aca543..66ed09581417 100644
> --- a/arch/mips/loongson2ef/Platform
> +++ b/arch/mips/loongson2ef/Platform
> @@ -41,6 +41,6 @@ cflags-y += $(call cc-option,-mno-loongson-mmi)
>  # Loongson Machines' Support
>  #
>
> -cflags-$(CONFIG_MACH_LOONGSON2EF) += -I$(srctree)/arch/mips/include/asm/mach-loongson2ef -mno-branch-likely
> +cflags-$(CONFIG_MACH_LOONGSON2EF) += -I$(srctree)/arch/mips/include/asm/mach-loongson2ef $(CONFIG_CC_MNO_BRANCH_LIKELY)

Does that allow someone to modify the value for CC_MNO_BRANCH_LIKELY
in menuconfig?

If so, I'd rather the Makefiles have:

cflags-$(CONFIG_CC_MNO_BRANCH_LIKELY) += -mno-branch-likely

and CONFIG_CC_MNO_BRANCH_LIKELY be a bool rather than an editable
string.  I think that makes the Makefile more readable; you don't have
to see what CONFIG_CC_MNO_BRANCH_LIKELY expands to in a different
file.

See also CC_HAS_ASM_GOTO and CC_HAS_ASM_GOTO_OUTPUT in init/Kconfig.

>  load-$(CONFIG_LEMOTE_FULOONG2E) += 0xffffffff80100000
>  load-$(CONFIG_LEMOTE_MACH2F) += 0xffffffff80200000
> diff --git a/arch/mips/loongson64/Platform b/arch/mips/loongson64/Platform
> index 3e660d6d3c2b..88fbdfe9ffcc 100644
> --- a/arch/mips/loongson64/Platform
> +++ b/arch/mips/loongson64/Platform
> @@ -33,5 +33,5 @@ cflags-y += $(call cc-option,-mno-loongson-mmi)
>  # Loongson Machines' Support
>  #
>
> -cflags-$(CONFIG_MACH_LOONGSON64) += -I$(srctree)/arch/mips/include/asm/mach-loongson64 -mno-branch-likely
> +cflags-$(CONFIG_MACH_LOONGSON64) += -I$(srctree)/arch/mips/include/asm/mach-loongson64 $(CONFIG_CC_MNO_BRANCH_LIKELY)
>  load-$(CONFIG_CPU_LOONGSON64) += 0xffffffff80200000
>
> > > ---
> > >  arch/mips/loongson64/Platform | 3 ++-
> > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/arch/mips/loongson64/Platform b/arch/mips/loongson64/Platform
> > > index 981d3abc150e..acf9edc9b15d 100644
> > > --- a/arch/mips/loongson64/Platform
> > > +++ b/arch/mips/loongson64/Platform
> > > @@ -26,5 +26,6 @@ cflags-y += $(call cc-option,-mno-loongson-mmi)
> > >  # Loongson Machines' Support
> > >  #
> > >
> > > -cflags-$(CONFIG_MACH_LOONGSON64) += -I$(srctree)/arch/mips/include/asm/mach-loongson64 -mno-branch-likely
> > > +cflags-$(CONFIG_MACH_LOONGSON64) += -I$(srctree)/arch/mips/include/asm/mach-loongson64
> > > +cflags-$(CONFIG_MACH_LOONGSON64) += $(call cc-option,-mno-branch-likely)
> > >  load-$(CONFIG_CPU_LOONGSON64) += 0xffffffff80200000
> > > --
> > > 2.34.1
> > >
> > >
> >
> >
> > --
> > Thanks,
> > ~Nick Desaulniers
>


-- 
Thanks,
~Nick Desaulniers

  reply	other threads:[~2022-01-24 22:49 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-20 21:40 [PATCH 1/2] MIPS: Loongson64: Clean up use of cc-ifversion Nathan Chancellor
2022-01-20 21:40 ` [PATCH 2/2] MIPS: Loongson64: Wrap -mno-branch-likely with cc-option Nathan Chancellor
2022-01-24 20:40   ` Nick Desaulniers
2022-01-24 22:37     ` Nathan Chancellor
2022-01-24 22:49       ` Nick Desaulniers [this message]
2022-01-24 23:09         ` Nathan Chancellor
2022-01-24 20:31 ` [PATCH 1/2] MIPS: Loongson64: Clean up use of cc-ifversion Nick Desaulniers
2022-01-25  0:03   ` Jiaxun Yang
2022-01-25  1:25     ` Nathan Chancellor
2022-01-25 21:19       ` Jiaxun Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAKwvOdmri9H_yCkN=Rr26UqZgFoXoGPM+41gBS15X1=zGSg_3A@mail.gmail.com' \
    --to=ndesaulniers@google.com \
    --cc=chenhuacai@kernel.org \
    --cc=jiaxun.yang@flygoat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=masahiroy@kernel.org \
    --cc=nathan@kernel.org \
    --cc=tsbogend@alpha.franken.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.