From: Mike Looijmans <mike.looijmans@topic.nl>
To: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 0/1] Change default for cortexa* to armv7at-neon.
Date: Fri, 29 Aug 2014 08:12:02 +0200 [thread overview]
Message-ID: <540019B2.3090102@topic.nl> (raw)
In-Reply-To: <53FF3565.1030604@windriver.com>
On 08/28/2014 03:57 PM, Mark Hatle wrote:
> On 8/28/14, 8:50 AM, Koen Kooi wrote:
>>
>> Op 25 aug. 2014, om 21:12 heeft Mark Hatle <mark.hatle@windriver.com>
>> het volgende geschreven:
>>
>>> On 8/22/14, 5:26 PM, Martin Jansa wrote:
>>>> On Fri, Aug 22, 2014 at 05:06:26PM -0500, Peter Seebach wrote:
>>>>> On Fri, 22 Aug 2014 23:46:26 +0200
>>>>> Martin Jansa <martin.jansa@gmail.com> wrote:
>>>>>
>>>>>> changing
>>>>>> default DEFAULTTUNE (and TUNE_PKGARCH with that) to have thumb while
>>>>>> still building with -marm doesn't make much sense to me and is only
>>>>>> confusing.
>>>>>
>>>>> I think the distinction is that if you use armv7at-neon, you *can*
>>>>> build
>>>>> specific packages with thumb. Mostly, I guess, I don't think it
>>>>> makes sense
>>>>> to use a tuning that specifically states that it can't run thumb
>>>>> code for
>>>>> processors which can. Although... May not be an important
>>>>> distinction, really,
>>>>> as you note.
>>>>
>>>>> I don't think it makes sense to use a tuning that specifically states
>>>>> that it can't run thumb code
>>>
>>> The defaulttune is supposed to supply what the processor and ABI are
>>> capable of.
>>>
>>> So in the case of armv7a, it's saying no thumb support at all, this
>>> included thumb interwork.
>>>
>>> armv7at says that the processor supports thumb, and interwork
>>> -should- be enabled. (It can of course be manually disabled, but
>>> that's another issue to be dealt with...)
>>>
>>> armv7at doesn't say it actually includes thumb combines binaries. (I
>>> argued originally it should, but was overruled for a variety of
>>> reasons... not the least of which is the interwork enabled, and
>>> multilib issues with 'same abi' configurations.)
>>>
>>> So I agree the default should be armv7at or armv7at-neon, unless
>>> there is a compelling reason to leave it as a default with interwork
>>> disabled.
>>>
>>> As for the hard float question. I'm torn on this.. for compatibility
>>> a lot of the industry is still soft-float based, and frankly I've not
>>> exactly encouraged it with my customers.. (I'm not seeing general
>>> performance improvements, only improvements in select artificial
>>> benchmarks, or specific pieces of code.)
>>
>> Again, softfloat != softfp. The current OE default of softfp *does*
>> use the VFP, it just passed the floats in the integer registers. Which
>> is why you will see no difference with hardfloat except for benchmarks
>> and povray.
>>
>
> Exactly. Which is why I haven't recommended to my customers that they
> -need- the HF ABI, like others in the ARM world seem to be insisting.
>
> If you have a LOT of functions that pass floats, or you do it often
> enough to see the behavior -- I can see how it would be useful. But
> this is fairly artificial in most of the embedded workloads I'm familiar
> with.
That's because we all learned to work around the softfp. I got bitten by
it once, so I also learned to avoid passing floats around across library
boundaries as much as possible. GCC is smart enough to use hardfloat on
internal methods, but its hands are tied when interfacing with externals.
There are other, more subtle effects to using hardfloat. For one thing,
it increases the number of registers available to pass parameters around.
I can see the case for not really needing hardfloat. But I fail to see
the advantage of strictly adhering to softfp just "because we used to".
What's the big disadvantage in moving to hardfloat?
>
> So I'd still say I'd like to change the cortexa* DEFAULTTUNES to
> reference armv7at or armv7at-neon (continue the softfp ABI for the time
> being). I'd be fine with the at-neon version, as I think all of the
> commodity armv7a's have neon.
>
> --Mark
--
Mike Looijmans
next prev parent reply other threads:[~2014-08-29 6:12 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-21 19:54 [PATCH 0/1] Change default for cortexa* to armv7at-neon Peter Seebach
2014-08-21 19:54 ` [PATCH 1/1] tune-cortexa*.inc: use armv7at by default Peter Seebach
2014-08-25 5:09 ` Khem Raj
2014-08-22 16:44 ` [PATCH 0/1] Change default for cortexa* to armv7at-neon Philip Balister
2014-08-22 18:33 ` Peter Seebach
2014-08-22 19:39 ` Martin Jansa
2014-08-22 20:49 ` Peter Seebach
2014-08-22 21:46 ` Martin Jansa
2014-08-22 22:06 ` Peter Seebach
2014-08-22 22:26 ` Martin Jansa
2014-08-25 19:12 ` Mark Hatle
2014-08-25 19:35 ` Khem Raj
2014-08-25 19:40 ` Mark Hatle
2014-08-25 20:40 ` Martin Jansa
2014-08-28 12:51 ` Philip Balister
2014-08-28 13:50 ` Koen Kooi
2014-08-28 13:57 ` Mark Hatle
2014-08-28 14:08 ` Koen Kooi
2014-08-28 14:21 ` Mark Hatle
2014-08-28 14:24 ` Mark Hatle
2014-08-29 6:12 ` Mike Looijmans [this message]
2014-08-29 12:16 ` Koen Kooi
2014-08-29 12:57 ` Mark Hatle
2014-08-24 23:51 ` Khem Raj
2014-08-24 7:56 ` Mike Looijmans
2014-08-24 14:44 ` Philip Balister
2014-08-24 18:15 ` Koen Kooi
2014-08-23 17:32 ` Koen Kooi
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=540019B2.3090102@topic.nl \
--to=mike.looijmans@topic.nl \
--cc=openembedded-core@lists.openembedded.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox