Matt Domsch wrote:
On Wed, May 04, 2011 at 01:46:06PM -0500, Jon Masters wrote:
> Folks,
>
> I'd like to kick off a discussion about flags for ARMv7. My proposal
> here is that we treat v7hl as an entirely different architecture, and
> don't try any multi-arch kind of hacks (there isn't the established user
> base for Fedora ARM to justify doing any of those things at the moment).
>
> Things I think we should consider as a minimum:
>
> *). Little endian (obviously, but worth stating) (l)
> *). Cortex-A8 or higher fully compliant core(s)
Is there a measureable difference in code optimized for A8 vs A9 when
running on A9? If so, my inclination would be to build for the future
- A9. It's not like A9 hardware is hard to come by these days.
I think the key thing to consider is cost/benefit. If the code optimized
for A9 runs poorly on A8, but the code optimized for A8 runs on A9
almost as well as the code optimized for the A9, then it would be better
to optimize for the A8.
Since A8 doesn't have OoOE, it wouldn't surprise me if latter was the
case (A8 code running imperceptibly worse on A9 but A9 code running
much worse on A8).
There is also the more philosophical issue - A9 is already faster than
A8, so it may be better to target the A8 on the basis that it is more in
need of that extra boost.
Having said that, the only real hardware platforms that are likely to be
affected here are the Genesi Efika and the Beagleboard. Everything else
that is popular seems to be either ARMv5 (Sheeva/Guru plugs) or A9
(AC100, Pandaboard, Trimslice).
> *). ARM VFP3 hardware floating point (h)
> *). ARM NEON Architecture
If libraries using NEON can detect NEON-capable CPUs and switch to
using those functions, all the better. Unfortunately, not all
A9 products include NEON, but then again, not all apps can make use of
NEON SIMD instructions anyhow.
Agreed - NEON should definitely be optional rather than mandatory,
especially if there is no ABI change required. This should be no
different to earlier versions of x86 Fedora where we had an i386 distro
with i686 kernel and glibc. We can have optional NEON/D32/VFP4 packages
for things that benefit from it, if the platform supports it.
Gordan