From: Adrian Bunk <bunk@stusta.de>
To: Andre McCurdy <armccurdy@gmail.com>
Cc: Peter Kjellerstedt <peter.kjellerstedt@axis.com>,
OE Core mailing list <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 0/6] Correct and improve the ARM tunings
Date: Wed, 3 Apr 2019 23:24:48 +0300 [thread overview]
Message-ID: <20190403202448.GA7131@localhost> (raw)
In-Reply-To: <CAJ86T=Wfp+1mrgWZCOG5VrhONADi08yZXd4Fm3L2Txb1euyUuA@mail.gmail.com>
On Wed, Apr 03, 2019 at 12:29:29PM -0700, Andre McCurdy wrote:
> On Tue, Apr 2, 2019 at 11:23 PM Adrian Bunk <bunk@stusta.de> wrote:
> > On Tue, Apr 02, 2019 at 09:26:46PM +0100, Richard Purdie wrote:
> > >...
> > > "armv4t" is defined in the arm tune files to mean "add -march=armv4t"
> > > which is the convention used throughout all the tune files.
> > >...
> >
> > Unfortunately this is not true.
> >
> > OE has both armv7a and armv7at tunes.
> >
> > There is no armv7a without Thumb support,
> > so no -march=armv7-at exists in gcc.
> >
> > Both armv7a and armv7at tunes pass the same march to gcc,
> > but [1] is not true:
> > Default to using the Thumb-2 instruction set for armv7a and above.
> >
> > The hardware supports Thumb-2 in any case, the actual difference between
> > the armv7a and armv7at OE tunes is whether OE tells the compiler to
> > generate ARM or Thumb-2 code.
> >
> > OE has both armv6 and armv6t tunes.
> >
> > There is no armv6 without Thumb support
> > so no -march=armv6t exists in gcc.
> >
> > Some v6 support only Thumb-1 and some v6 support also Thumb-2,
> > so what gcc does have is an -march=armv6t2.
> > But OE lacks tunes for that.
> >
> > For matching the gcc options it would be correct to remove all
> > armv6t and armv7at tunes that have no coresponding gcc options,
> > and add armv6t2 tunes.
>
> Aligning the tuning options exposed via the machine config files to
> those supported by gcc seems like a worthy goal... but would be a big
> upheaval at this point.
>
> Note that the problem isn't specific to ARM. There are similar issues
> for x86, but there we seem happy to provide a very minimal abstraction
> with no attempt to track gcc. e.g. "corei7" hasn't been a documented
> -march option since gcc 4.8 and we (somewhat arbitrarily) map it to
> -march=nehalem to hide that fact from end users.
>
> So the high level question seems to be: should DEFAULTTUNE even
> attempt to provide a full featured mapping to the options provided by
> gcc? Are we happy to expose a limited subset without a 1:1 mapping for
> the options we do expose (current ARM approach) or is it better for
> DEFAULTTUNE to hide away all the complexity of the options provided by
> gcc (current x86 approach).
The current 32bit ARM[1] approach seems to be an attempt
of a 1:1 mapping.
For ARMv8 it is already obvious that DEFAULTTUNE is not long-term
maintainable, and duplicating all the gcc rules regarding feature
flags[2] also sounds like a pointless exercise.
What are actually the benefits of DEFAULTTUNE with all the tune files,
compared to just let the user provide a string that is passed to -march?
cu
Adrian
[1] ARM <= v7, not the differing 32bit ABI of ARMv8
[2] example:
'fp16fml'
Enable FP16 fmla extension. This also enables FP16 extensions and
floating-point instructions. This option is enabled by default for
'-march=armv8.4-a'. Use of this option with architectures prior to
Armv8.2-A is not supported.
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
next prev parent reply other threads:[~2019-04-03 20:24 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-02 19:30 [PATCH 0/6] Correct and improve the ARM tunings Peter Kjellerstedt
2019-04-02 19:30 ` [PATCH 1/6] arch-armv8a.inc: Correct PACKAGE_EXTRA_ARCHS_tune-armv8a-* Peter Kjellerstedt
2019-04-02 19:31 ` [PATCH 2/6] Revert "arch-armv5-dsp.inc: Check for dsp only to enable 'e' in package arches" Peter Kjellerstedt
2019-04-02 20:52 ` akuster808
2019-04-02 22:29 ` Peter Kjellerstedt
2019-04-02 19:31 ` [PATCH 3/6] Revert "arm-tunes: Remove -march option if mcpu is already added" Peter Kjellerstedt
2019-04-02 19:31 ` [PATCH 4/6] arm-tunes: Prefer the -mcpu option over -march Peter Kjellerstedt
2019-04-02 19:31 ` [PATCH 5/6] arch-arm64.inc: Lower the priority of aarch64 in MACHINEOVERRIDES Peter Kjellerstedt
2019-04-02 19:31 ` [PATCH 6/6] arm-tunes: Add armv8a to TUNE_FEATURES as appropriate Peter Kjellerstedt
2019-04-02 20:26 ` [PATCH 0/6] Correct and improve the ARM tunings Richard Purdie
2019-04-02 22:27 ` Peter Kjellerstedt
2019-04-03 6:22 ` Adrian Bunk
2019-04-03 19:29 ` Andre McCurdy
2019-04-03 20:24 ` Adrian Bunk [this message]
2019-04-03 20:48 ` Andre McCurdy
2019-04-04 8:00 ` Adrian Bunk
2019-04-17 8:33 ` Martin Jansa
2019-04-17 10:26 ` Peter Kjellerstedt
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=20190403202448.GA7131@localhost \
--to=bunk@stusta.de \
--cc=armccurdy@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=peter.kjellerstedt@axis.com \
/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.