[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.00.1604221425010.21846@tp.orcam.me.uk>
Date: Fri, 22 Apr 2016 16:48:28 +0100
From: "Maciej W. Rozycki" <macro@...tec.com>
To: Paul Burton <paul.burton@...tec.com>
CC: Ralf Baechle <ralf@...ux-mips.org>,
Fengguang Wu <fengguang.wu@...el.com>, <kbuild-all@...org>,
<linux-kernel@...r.kernel.org>, Philip Li <philip.li@...el.com>
Subject: Re: [kbuild-all] mipsel-linux-gnu-gcc: error: unrecognized command
line option '-mcompact-branches=optimal'
On Fri, 22 Apr 2016, Paul Burton wrote:
> > In that case however it looks to me like these `-mcompact-branches='
> > options (all the three we support) need to be wrapped into `$(call
> > cc-option,...)'.
>
> An alternative that it could be argued better fits the principle of
> least surprise is to add an extra option to the Kconfig choice that
> simply leaves -mcompact-branches unspecified. I just submitted a patch
> to do so [1].
Hmm, good idea in principle, but given that -- as you say -- this is a
debug option I have a further suggestion I'll reply to your patch
submission with.
> > They do not affect any functionality and they are an
> > optimisation choice only anyway (and therefore I wonder why they've been
> > placed in arch/mips/Kconfig.debug rather than arch/mips/Kconfig).
>
> They're in Kconfig.debug because debug is exactly what they've been
> useful for - given that compact branches are new to R6 it's been useful
> in debugging systems, both hardware & simulators, to sometimes not use
> them. It's also been useful to force their use attempting to work around
> the compiler bug that [2] works around differently (bug 2179 on DMZ
> bugzilla). On the other hand I can't think of a reason we'd want to
> specify compact branch policy that isn't for debug - I'd expect for
> performance optimisation we're more likely to rely upon the toolchain
> using a sensible policy if the kernel is built for a specific CPU (eg.
> perhaps -mcpu=p6600 prefers non-compact branches & -mcpu=m6250 prefers
> all compact branches, or similar).
Good point, it should indeed be the compiler making the right choice for
the `-mtune=' setting selected with the default branch policy rather the
user fiddling with `-mcompact-branches=' manually unless, as you say, for
debugging.
Thanks for the patience to educate me.
Maciej
Powered by blists - more mailing lists