All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dragomir Daniel <daniel.dragomir@windriver.com>
To: Andrei Gherzan <andrei@gherzan.ro>
Cc: openembedded <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCHv2] Add tune for 32-bit ARMv8-a
Date: Wed, 2 Mar 2016 12:35:46 +0200	[thread overview]
Message-ID: <56D6C202.5000008@windriver.com> (raw)
In-Reply-To: <CAK18fxG3L6W942-Q6qQD+9o7QtWTq7yW+wp9iDgBGvAKyDEaKQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 9720 bytes --]

Hi Andrei,

On 03/02/2016 02:17 AM, Andrei Gherzan wrote:
> Hi Daniel,
>
> On Sat, Feb 27, 2016 at 1:44 PM, Daniel Dragomir 
> <daniel.dragomir@windriver.com <mailto:daniel.dragomir@windriver.com>> 
> wrote:
>
>     This patch adds tunes for 32-bit armv8 platforms. The user can select
>     the vector floating-point instruction set: vfpv3, vfpv4 or fp-armv8
>     and the Neon, crc and crypto extensions.
>
>     Also, fix some parsing failures for armv7a*-neon-vfpv4 tunes.
>
>     Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com
>     <mailto:daniel.dragomir@windriver.com>>
>     Signed-off-by: Cristian Bercaru <cristian.bercaru at windriver.com
>     <http://windriver.com>>
>     ---
>      meta/conf/machine/include/arm/arch-armv7a.inc |  4 +-
>      meta/conf/machine/include/arm/arch-armv8a.inc | 75
>     +++++++++++++++++++++++++++
>      2 files changed, 77 insertions(+), 2 deletions(-)
>      create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>
>     diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc
>     b/meta/conf/machine/include/arm/arch-armv7a.inc
>     index d3b6f64..ff6bc29 100644
>     --- a/meta/conf/machine/include/arm/arch-armv7a.inc
>     +++ b/meta/conf/machine/include/arm/arch-armv7a.inc
>     @@ -65,8 +65,8 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-v
>      PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16}
>     armv7ahf-vfp-vfpv3d16-vfpv3 armv7at2hf-vfp-vfpv3d16-vfpv3"
>      PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
>      PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon
>     armv7at2hf-vfp-neon"
>     -PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-neon-vfpv4"
>     -PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon}
>     armv7ahf-vfp-neon-vfpv4 armv7at2hf-vfp-neon-vfpv4"
>     +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-vfpv4-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon}
>     armv7ahf-vfp-vfpv4-neon armv7at2hf-vfp-neon-vfpv4"
>
>      # Big Endian
>      AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16
>     armv7atb-vfpv3d16 armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon
>     armv7atb-neon"
>     diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc
>     b/meta/conf/machine/include/arm/arch-armv8a.inc
>     new file mode 100644
>     index 0000000..2d8dd73
>     --- /dev/null
>     +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
>     @@ -0,0 +1,75 @@
>     +DEFAULTTUNE ?= "armv8a"
>     +
>     +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
>     +TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a"
>     +
>     +TUNEVALID[crc] = "Enable CRC instrucitons for ARMv8-a"
>
>
> Small typo here: instrucitons .

Thanks! Didn't noticed :)

>     +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crc",
>     "-crc", "", d)}"
>     +
>     +TUNEVALID[crypto] = "Enable ARMv8 crypto extension."
>     +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crypto",
>     "-crypto", "", d)}"
>     +
>     +TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit."
>     +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES",
>     "fp-armv8", "-fp-armv8", "", d)}"
>     +
>     +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv8a",
>     bb.utils.contains("TUNE_FEATURES", "crc", " -march=armv8-a+crc", "
>     -march=armv8-a", d), "", d)}"
>     +
>     +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8",
>     bb.utils.contains("TUNE_FEATURES", "neon",
>     bb.utils.contains("TUNE_FEATURES", "crypto", "
>     -mfpu=crypto-neon-fp-armv8", " -mfpu=neon-fp-armv8", d), "
>     -mfpu=fp-armv8", d), "", d)}"
>     +
>     +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES",
>     "armv8a", "armv8a:", "" ,d)}"
>     +
>     +require conf/machine/include/arm/arch-armv7a.inc
>     +
>     +# Little Endian base configs
>     +AVAILTUNES += "armv8a armv8a-vfpv3 armv8a-neon armv8a-vfpv4
>     armv8a-vfpv4-neon armv8a-fp-armv8 armv8a-fp-armv8-neon
>     armv8a-crypto-fp-armv8-neon"
>     +ARMPKGARCH_tune-armv8a ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-vfpv3 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-vfpv4 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-vfpv4-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-fp-armv8 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-fp-armv8-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crypto-fp-armv8-neon ?= "armv8a"
>     +TUNE_FEATURES_tune-armv8a ?= "arm armv8a vfp"
>     +TUNE_FEATURES_tune-armv8a-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a}
>     vfpv3"
>     +TUNE_FEATURES_tune-armv8a-neon ?= "${TUNE_FEATURES_tune-armv8a} neon"
>     +TUNE_FEATURES_tune-armv8a-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a}
>     vfpv4"
>     +TUNE_FEATURES_tune-armv8a-vfpv4-neon ?=
>     "${TUNE_FEATURES_tune-armv8a} neon vfpv4"
>     +TUNE_FEATURES_tune-armv8a-fp-armv8 ?=
>     "${TUNE_FEATURES_tune-armv8a} fp-armv8"
>     +TUNE_FEATURES_tune-armv8a-fp-armv8-neon ?=
>     "${TUNE_FEATURES_tune-armv8a} neon fp-armv8"
>     +TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon ?=
>     "${TUNE_FEATURES_tune-armv8a} crypto neon fp-armv8"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv8a armv8a-vfp"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfp-vfpv3"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-vfpv4"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-vfp-neon
>     armv8a-vfp-vfpv4-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-fp-armv8-vfp"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-vfp-neon
>     armv8a-fp-armv8-vfp-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon}
>     armv8a-crypto-fp-armv8-vfp-neon"
>     +
>     +# CRC configs
>     +AVAILTUNES += "armv8a-crc armv8a-crc-vfpv3 armv8a-crc-neon
>     armv8a-crc-vfpv4 armv8a-crc-vfpv4-neon armv8a-crc-fp-armv8
>     armv8a-crc-fp-armv8-neon armv8a-crc-crypto-fp-armv8-neon"
>     +ARMPKGARCH_tune-armv8a-crc ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-vfpv3 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-vfpv4 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-vfpv4-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-fp-armv8 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-fp-armv8-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-crypto-fp-armv8-neon ?= "armv8a"
>     +TUNE_FEATURES_tune-armv8a-crc ?= "${TUNE_FEATURES_tune-armv8a} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-vfpv3 ?=
>     "${TUNE_FEATURES_tune-armv8a-vfpv3} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-neon ?=
>     "${TUNE_FEATURES_tune-armv8a-neon} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-vfpv4 ?=
>     "${TUNE_FEATURES_tune-armv8a-vfpv4} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-vfpv4-neon ?=
>     "${TUNE_FEATURES_tune-armv8a-vfpv4-neon} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-fp-armv8 ?=
>     "${TUNE_FEATURES_tune-armv8a-fp-armv8} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-fp-armv8-neon ?=
>     "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-crypto-fp-armv8-neon ?=
>     "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon} crc"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc-vfp"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-vfpv3
>     armv8a-crc-vfp-vfpv3"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-neon
>     armv8a-crc-vfp-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-vfpv4
>     armv8a-crc-vfp-vfpv4"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4} armv8a-vfp-neon
>     armv8a-crc-vfp-neon armv8a-vfp-vfpv4-neon armv8a-crc-vfp-vfpv4-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-fp-armv8
>     armv8a-crc-fp-armv8-vfp"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8} armv8a-vfp-neon
>     armv8a-vfp-neon-fp-armv8 armv8a-crc-fp-armv8-vfp-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-fp-armv8-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon}
>     armv8a-vfp-crypto-neon-fp-armv8 armv8a-crc-crypto-fp-armv8-vfp-neon"
>
>
> Any plans for 64 bit version?
>
> Andrei
>

Yes, we have plans to add specific tunes for armv8 64bit too, but after 
we finish for 32bit.
For the moment, for 64bit, we simply include arch-armv8.inc witch only 
require arch-arm64.inc.

Regards,
Daniel


[-- Attachment #2: Type: text/html, Size: 14460 bytes --]

  reply	other threads:[~2016-03-02 10:36 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-27 12:44 [PATCHv2] ARMv8 32-bit compiler tunings Daniel Dragomir
2016-02-27 12:44 ` [PATCHv2] Add tune for 32-bit ARMv8-a Daniel Dragomir
2016-03-01  0:02   ` Andre McCurdy
2016-03-01 16:33     ` Dragomir Daniel
2016-03-01 19:12       ` Andre McCurdy
2016-03-02 10:25         ` Dragomir Daniel
2016-03-02  0:17   ` Andrei Gherzan
2016-03-02 10:35     ` Dragomir Daniel [this message]
2016-03-02 15:49       ` Andrei Gherzan
2016-02-27 13:14 ` [PATCHv2] ARMv8 32-bit compiler tunings Dragomir Daniel

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=56D6C202.5000008@windriver.com \
    --to=daniel.dragomir@windriver.com \
    --cc=andrei@gherzan.ro \
    --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 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.