[PATCH, GCC, ARM] Enable armv8.5-a and add +sb and +predres for previous ARMv8-a in ARM

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH, GCC, ARM] Enable armv8.5-a and add +sb and +predres for previous ARMv8-a in ARM

Sudakshina Das-2
Hi

This patch adds -march=armv8.5-a to the Arm backend.
(https://developer.arm.com/products/architecture/cpu-architecture/a-profile/exploration-tools)
Armv8.5-A also adds two new security features:
- Speculation Barrier instruction
- Execution and Data Prediction Restriction Instructions
These are made optional to all older Armv8-A versions. Thus we are
adding two new options "+sb" and "+predres" to all older Armv8-A. These
are passed on to the assembler and have no code generation effects and
have already gone in the trunk of binutils.

Bootstrapped and regression tested with arm-none-linux-gnueabihf.

Is this ok for trunk?
Sudi

*** gcc/ChangeLog ***

2018-xx-xx  Sudakshina Das  <[hidden email]>

        * config/arm/arm-cpus.in (armv8_5, sb, predres): New features.
        (ARMv8_5a): New fgroup.
        (armv8.5-a): New arch.
        (armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New
        options sb and predres.
        * config/arm/arm-tables.opt: Regenerate.
        * config/arm/t-aprofile: Add matching rules for -march=armv8.5-a
        * config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a.
        * config/arm/t-multilib (v8_5_a_simd_variants): New variable.
        Add matching rules for -march=armv8.5-a and extensions.
        * doc/invoke.texi (ARM options): Document -march=armv8.5-a.
        Add sb and predres to all armv8-a except armv8.5-a.

*** gcc/testsuite/ChangeLog ***

2018-xx-xx  Sudakshina Das  <[hidden email]>

        * gcc.target/arm/multilib.exp: Add some -march=armv8.5-a
        combination tests.

rb10273.patch (14K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH, GCC, ARM] Enable armv8.5-a and add +sb and +predres for previous ARMv8-a in ARM

Kyrill  Tkachov-2
Hi Sudi,

On 09/11/18 15:33, Sudakshina Das wrote:

> Hi
>
> This patch adds -march=armv8.5-a to the Arm backend.
> (https://developer.arm.com/products/architecture/cpu-architecture/a-profile/exploration-tools)
> Armv8.5-A also adds two new security features:
> - Speculation Barrier instruction
> - Execution and Data Prediction Restriction Instructions
> These are made optional to all older Armv8-A versions. Thus we are
> adding two new options "+sb" and "+predres" to all older Armv8-A. These
> are passed on to the assembler and have no code generation effects and
> have already gone in the trunk of binutils.
>
> Bootstrapped and regression tested with arm-none-linux-gnueabihf.
>
> Is this ok for trunk?
> Sudi
>
> *** gcc/ChangeLog ***
>
> 2018-xx-xx  Sudakshina Das  <[hidden email]>
>
> * config/arm/arm-cpus.in (armv8_5, sb, predres): New features.
> (ARMv8_5a): New fgroup.
> (armv8.5-a): New arch.
> (armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New
> options sb and predres.
> * config/arm/arm-tables.opt: Regenerate.
> * config/arm/t-aprofile: Add matching rules for -march=armv8.5-a
> * config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a.
> * config/arm/t-multilib (v8_5_a_simd_variants): New variable.
> Add matching rules for -march=armv8.5-a and extensions.
> * doc/invoke.texi (ARM options): Document -march=armv8.5-a.
> Add sb and predres to all armv8-a except armv8.5-a.
>
> *** gcc/testsuite/ChangeLog ***
>
> 2018-xx-xx  Sudakshina Das  <[hidden email]>
>
> * gcc.target/arm/multilib.exp: Add some -march=armv8.5-a
> combination tests.

Hi

This patch adds -march=armv8.5-a to the Arm backend.
(https://developer.arm.com/products/architecture/cpu-architecture/a-profile/exploration-tools)
Armv8.5-A also adds two new security features:
- Speculation Barrier instruction
- Execution and Data Prediction Restriction Instructions
These are made optional to all older Armv8-A versions. Thus we are
adding two new options "+sb" and "+predres" to all older Armv8-A. These
are passed on to the assembler and have no code generation effects and
have already gone in the trunk of binutils.

Bootstrapped and regression tested with arm-none-linux-gnueabihf.

Is this ok for trunk?
Sudi

*** gcc/ChangeLog ***

2018-xx-xx  Sudakshina Das<[hidden email]>

        * config/arm/arm-cpus.in (armv8_5, sb, predres): New features.
        (ARMv8_5a): New fgroup.
        (armv8.5-a): New arch.
        (armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New
        options sb and predres.
        * config/arm/arm-tables.opt: Regenerate.
        * config/arm/t-aprofile: Add matching rules for -march=armv8.5-a
        * config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a.
        * config/arm/t-multilib (v8_5_a_simd_variants): New variable.
        Add matching rules for -march=armv8.5-a and extensions.
        * doc/invoke.texi (ARM options): Document -march=armv8.5-a.
        Add sb and predres to all armv8-a except armv8.5-a.

*** gcc/testsuite/ChangeLog ***

2018-xx-xx  Sudakshina Das<[hidden email]>

        * gcc.target/arm/multilib.exp: Add some -march=armv8.5-a
        combination tests.



This is ok modulo a typo fix below.

Thanks,
Kyrill

<snip>

index 25788ad09851daf41038b1578307bf23b7f34a94..eba038f9d20bc54bef7bdb7fa1c0e7028d954ed7 100644
--- a/gcc/config/arm/t-multilib
+++ b/gcc/config/arm/t-multilib
@@ -70,7 +70,8 @@ v8_a_simd_variants := $(call all_feat_combs, simd crypto)
  v8_1_a_simd_variants := $(call all_feat_combs, simd crypto)
  v8_2_a_simd_variants := $(call all_feat_combs, simd fp16 fp16fml crypto dotprod)
  v8_4_a_simd_variants := $(call all_feat_combs, simd fp16 crypto)
-v8_r_nosimd_variants := +crc
+v8_5_a_simd_variants := $(call all_feat_combs, simd fp16 crypto)
+v8_r_nosimd_variants := +cr5
 

Typo, should be +crc



Reply | Threaded
Open this post in threaded view
|

Re: [PATCH, GCC, ARM] Enable armv8.5-a and add +sb and +predres for previous ARMv8-a in ARM

Sudakshina Das-2
Hi Kyrill

On 09/11/18 18:21, Kyrill Tkachov wrote:

> Hi Sudi,
>
> On 09/11/18 15:33, Sudakshina Das wrote:
>> Hi
>>
>> This patch adds -march=armv8.5-a to the Arm backend.
>> (https://developer.arm.com/products/architecture/cpu-architecture/a-profile/exploration-tools)
>>
>> Armv8.5-A also adds two new security features:
>> - Speculation Barrier instruction
>> - Execution and Data Prediction Restriction Instructions
>> These are made optional to all older Armv8-A versions. Thus we are
>> adding two new options "+sb" and "+predres" to all older Armv8-A. These
>> are passed on to the assembler and have no code generation effects and
>> have already gone in the trunk of binutils.
>>
>> Bootstrapped and regression tested with arm-none-linux-gnueabihf.
>>
>> Is this ok for trunk?
>> Sudi
>>
>> *** gcc/ChangeLog ***
>>
>> 2018-xx-xx  Sudakshina Das  <[hidden email]>
>>
>>     * config/arm/arm-cpus.in (armv8_5, sb, predres): New features.
>>     (ARMv8_5a): New fgroup.
>>     (armv8.5-a): New arch.
>>     (armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New
>>     options sb and predres.
>>     * config/arm/arm-tables.opt: Regenerate.
>>     * config/arm/t-aprofile: Add matching rules for -march=armv8.5-a
>>     * config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a.
>>     * config/arm/t-multilib (v8_5_a_simd_variants): New variable.
>>     Add matching rules for -march=armv8.5-a and extensions.
>>     * doc/invoke.texi (ARM options): Document -march=armv8.5-a.
>>     Add sb and predres to all armv8-a except armv8.5-a.
>>
>> *** gcc/testsuite/ChangeLog ***
>>
>> 2018-xx-xx  Sudakshina Das  <[hidden email]>
>>
>>     * gcc.target/arm/multilib.exp: Add some -march=armv8.5-a
>>     combination tests.
>
> Hi
>
> This patch adds -march=armv8.5-a to the Arm backend.
> (https://developer.arm.com/products/architecture/cpu-architecture/a-profile/exploration-tools)
>
> Armv8.5-A also adds two new security features:
> - Speculation Barrier instruction
> - Execution and Data Prediction Restriction Instructions
> These are made optional to all older Armv8-A versions. Thus we are
> adding two new options "+sb" and "+predres" to all older Armv8-A. These
> are passed on to the assembler and have no code generation effects and
> have already gone in the trunk of binutils.
>
> Bootstrapped and regression tested with arm-none-linux-gnueabihf.
>
> Is this ok for trunk?
> Sudi
>
> *** gcc/ChangeLog ***
>
> 2018-xx-xx  Sudakshina Das<[hidden email]>
>
>      * config/arm/arm-cpus.in (armv8_5, sb, predres): New features.
>      (ARMv8_5a): New fgroup.
>      (armv8.5-a): New arch.
>      (armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New
>      options sb and predres.
>      * config/arm/arm-tables.opt: Regenerate.
>      * config/arm/t-aprofile: Add matching rules for -march=armv8.5-a
>      * config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a.
>      * config/arm/t-multilib (v8_5_a_simd_variants): New variable.
>      Add matching rules for -march=armv8.5-a and extensions.
>      * doc/invoke.texi (ARM options): Document -march=armv8.5-a.
>      Add sb and predres to all armv8-a except armv8.5-a.
>
> *** gcc/testsuite/ChangeLog ***
>
> 2018-xx-xx  Sudakshina Das<[hidden email]>
>
>      * gcc.target/arm/multilib.exp: Add some -march=armv8.5-a
>      combination tests.
>
>
>
> This is ok modulo a typo fix below.
>
> Thanks,
> Kyrill
>

Thanks. Fixed and committed as r266031.

Sudi

> <snip>
>
> index
> 25788ad09851daf41038b1578307bf23b7f34a94..eba038f9d20bc54bef7bdb7fa1c0e7028d954ed7
> 100644
> --- a/gcc/config/arm/t-multilib
> +++ b/gcc/config/arm/t-multilib
> @@ -70,7 +70,8 @@ v8_a_simd_variants    := $(call all_feat_combs, simd
> crypto)
>   v8_1_a_simd_variants    := $(call all_feat_combs, simd crypto)
>   v8_2_a_simd_variants    := $(call all_feat_combs, simd fp16 fp16fml
> crypto dotprod)
>   v8_4_a_simd_variants    := $(call all_feat_combs, simd fp16 crypto)
> -v8_r_nosimd_variants    := +crc
> +v8_5_a_simd_variants    := $(call all_feat_combs, simd fp16 crypto)
> +v8_r_nosimd_variants    := +cr5
>
>
> Typo, should be +crc
>
>
>