[OE-core] [CONSOLIDATED PULL 03/19] tune: Add hard floating point variants of cortexa8 tunes
Phil Blundell
philb at gnu.org
Tue Aug 23 09:30:55 UTC 2011
On Mon, 2011-08-22 at 14:51 -0700, Saul Wold wrote:
> From: Darren Hart <dvhart at linux.intel.com>
>
> Enable machines or distros to select the hard floating point abi for cortexa8
> machines. I left out the arm7a thumb+neon combinations as they were not
> present in the original non-hf set.
>
> Signed-off-by: Darren Hart <dvhart at linux.intel.com>
> CC: Jason Kridner <jkridner at beagleboard.org>
> CC: Koen Kooi <koen at dominion.thruhere.net>
> ---
> meta/conf/machine/include/tune-cortexa8.inc | 16 +++++++++++++---
> 1 files changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/meta/conf/machine/include/tune-cortexa8.inc b/meta/conf/machine/include/tune-cortexa8.inc
> index 67c5f0b..edd1717 100644
> --- a/meta/conf/machine/include/tune-cortexa8.inc
> +++ b/meta/conf/machine/include/tune-cortexa8.inc
> @@ -5,12 +5,22 @@ require conf/machine/include/arm/arch-armv7a.inc
> TUNEVALID[cortexa8] = "Enable Cortex-A8 specific processor optimizations"
> TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "cortexa8", "-mtune=cortex-a8", "", d)}"
>
> -AVAILTUNES += "cortexa8 cortexa8t"
> +# Little Endian base configs
> +AVAILTUNES += "cortexa8 cortexa8t cortexa8-neon"
> TUNE_FEATURES_tune-cortexa8 = "${TUNE_FEATURES_tune-armv7a} cortexa8"
> TUNE_FEATURES_tune-cortexa8t = "${TUNE_FEATURES_tune-armv7at} cortexa8"
> -TUNE_FEATURES_tune-cortexa8-neon = "${TUNE_FEATURES_tune-cortexa8} neon"
> -
> +TUNE_FEATURES_tune-cortexa8-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa8"
> PACKAGE_EXTRA_ARCHS_tune-cortexa8 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a}"
> PACKAGE_EXTRA_ARCHS_tune-cortexa8t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at}"
> PACKAGE_EXTRA_ARCHS_tune-cortexa8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon}"
This part of the patch doesn't seem to match any of the description in
the checkin comment.
> +# VFP Tunes
> +AVAILTUNES += "cortexa8hf cortexa8thf cortexa8hf-neon"
> +TUNE_FEATURES_tune-cortexa8hf ?= "${TUNE_FEATURES_tune-armv7ahf} cortexa8"
> +TUNE_FEATURES_tune-cortexa8thf ?= "${TUNE_FEATURES_tune-armv7athf} cortexa8"
> +TUNE_FEATURES_tune-cortexa8hf-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa8"
> +PACKAGE_EXTRA_ARCHS_tune-cortexa8hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf}"
> +PACKAGE_EXTRA_ARCHS_tune-cortexa8thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf}"
> +PACKAGE_EXTRA_ARCHS_tune-cortexa8hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon}"
I don't think "VFP Tunes" is a very good description of these, since it
might lead folks to think that they need to enable these tunes to get
vfp instructions (which is untrue: the vfp ISA is controlled by the
"vfp" tune feature and this is set for both armv6 and armv7a
automatically). If they are hard-float ABI tunes, which seems to be the
case, then let's call them that.
Also, on a broader issue, I continue to feel that adding more and more
terms to what is already quite a large cross product is not a very good
way to proceed. There's nothing very cortexa8 specific about the
hardfloat API and, to do this comprehensively, we'd have to add an -hf
version of every existing tune definition which has vfp enabled. I
think it would be better to find a way to express this sort of thing
which captures the orthogonality of the different options and avoids the
need to write out every permutation in longhand.
Also also, on a more tangential note, I remain skeptical that the
hardfloat ABI is actually a useful thing to support. I'd be interested
to see any benchmark results which demonstrate that it's worthwhile.
p.
More information about the Openembedded-core
mailing list