|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
| #
55b6a318 |
| 06-Apr-2022 |
David Spickett <[email protected]> |
[llvm][AArch64] Generate getExtensionFeatures from the list of extensions
This takes the AARCH64_ARCH_EXT_NAME in AArch64TargetParser.def and uses it to generate all the "if bit is set add this feat
[llvm][AArch64] Generate getExtensionFeatures from the list of extensions
This takes the AARCH64_ARCH_EXT_NAME in AArch64TargetParser.def and uses it to generate all the "if bit is set add this feature name" code.
Which gives us a bunch that we were missing. I've updated testing to include those and reordered them to match the order in the .def.
The final part of the test will catch any missing extensions if we somehow manage to not generate an if block for them.
This has changed the order of cc1's "-target-feature" output so I've updated some tests in clang to reflect that.
Reviewed By: tmatheson
Differential Revision: https://reviews.llvm.org/D123296
show more ...
|
| #
35245356 |
| 15-Mar-2022 |
Ties Stuij <[email protected]> |
[AARCH64] ssbs should be enabled by default for cortex-x1, cortex-x1c, cortex-a77
Reviewed By: amilendra
Differential Revision: https://reviews.llvm.org/D121206
|
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
61d547e8 |
| 05-Jan-2022 |
Mubashar Ahmad <[email protected]> |
[Clang][AArch64][ARM] PMUv3 Option Added
An option has been added to Clang to enable or disable the PMU v3 architecture extension.
Differential Revision: https://reviews.llvm.org/D116748
|
|
Revision tags: llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4 |
|
| #
c84b8be5 |
| 23-Sep-2021 |
Lucas Prates <[email protected]> |
[AArch64] clang support for Armv8.8/9.3 MOPS
This introduces clang command line support for the new Armv8.8-A and Armv9.3-A instructions for standardising memcpy, memset and memmove operations, whic
[AArch64] clang support for Armv8.8/9.3 MOPS
This introduces clang command line support for the new Armv8.8-A and Armv9.3-A instructions for standardising memcpy, memset and memmove operations, which was previously introduced into LLVM in https://reviews.llvm.org/D116157.
Patch by Lucas Prates, Tomas Matheson and Son Tuan Vu.
Differential Revision: https://reviews.llvm.org/D117271
show more ...
|
| #
2db4cf59 |
| 13-Dec-2021 |
Tomas Matheson <[email protected]> |
clang support for Armv8.8/9.3 HBC
This introduces clang command line support for new Armv8.8-A and Armv9.3-A Hinted Conditional Branches feature, previously introduced into LLVM in https://reviews.l
clang support for Armv8.8/9.3 HBC
This introduces clang command line support for new Armv8.8-A and Armv9.3-A Hinted Conditional Branches feature, previously introduced into LLVM in https://reviews.llvm.org/D116156.
Patch by Tomas Matheson and Son Tuan Vu.
Differential Revision: https://reviews.llvm.org/D116939
show more ...
|
| #
0c7f515f |
| 11-Jan-2022 |
David Green <[email protected]> |
Revert "[Clang][AArch64][ARM] PMUv3.4 Option Added"
It turns out this is conflating a few different PMU extensions. And on Arm ended up breaking M-Profile code generation. Reverting for the moment w
Revert "[Clang][AArch64][ARM] PMUv3.4 Option Added"
It turns out this is conflating a few different PMU extensions. And on Arm ended up breaking M-Profile code generation. Reverting for the moment whilst we sort out the details.
This reverts commit d17fb46e894501568a1bf3b11a5d920817444630.
show more ...
|
| #
d17fb46e |
| 05-Jan-2022 |
Mubashar Ahmad <[email protected]> |
[Clang][AArch64][ARM] PMUv3.4 Option Added
An option has been added to Clang to enable or disable the PMU v3.4 architecture extension.
Differential Revision: https://reviews.llvm.org/D116748
|
|
Revision tags: llvmorg-13.0.0-rc3 |
|
| #
cd7f621a |
| 02-Sep-2021 |
Lucas Prates <[email protected]> |
[ARM][AArch64] Introduce Armv9.3-A
This patch introduces support for targetting the Armv9.3-A architecture, which should map to the existing Armv8.8-A extensions.
Differential Revision: https://rev
[ARM][AArch64] Introduce Armv9.3-A
This patch introduces support for targetting the Armv9.3-A architecture, which should map to the existing Armv8.8-A extensions.
Differential Revision: https://reviews.llvm.org/D116158
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2 |
|
| #
d50072f7 |
| 11-Feb-2021 |
Simon Tatham <[email protected]> |
[ARM] Introduce an empty "armv8.8-a" architecture.
This is the first commit in a series that implements support for "armv8.8-a" architecture. This should contain all the necessary boilerplate to mak
[ARM] Introduce an empty "armv8.8-a" architecture.
This is the first commit in a series that implements support for "armv8.8-a" architecture. This should contain all the necessary boilerplate to make the 8.8-A architecture exist from LLVM and Clang's point of view: it adds the new arch as a subtarget feature, a definition in TargetParser, a name on the command line, an appropriate set of predefined macros, and adds appropriate tests. The new architecture name is supported in both AArch32 and AArch64.
However, in this commit, no actual _functionality_ is added as part of the new architecture. If you specify -march=armv8.8a, the compiler will accept it and set the right predefines, but generate no code any differently.
Differential Revision: https://reviews.llvm.org/D115694
show more ...
|
| #
d2377f24 |
| 12-Dec-2021 |
Kazu Hirata <[email protected]> |
Ensure newlines at the end of files (NFC)
|
| #
e3b2f022 |
| 01-Dec-2021 |
Ties Stuij <[email protected]> |
[clang][ARM] PACBTI-M frontend support
Handle branch protection option on the commandline as well as a function attribute. One patch for both mechanisms, as they use the same underlying parsing mech
[clang][ARM] PACBTI-M frontend support
Handle branch protection option on the commandline as well as a function attribute. One patch for both mechanisms, as they use the same underlying parsing mechanism.
These are recorded in a set of LLVM IR module-level attributes like we do for AArch64 PAC/BTI (see https://reviews.llvm.org/D85649):
- command-line options are "translated" to module-level LLVM IR attributes (metadata).
- functions have PAC/BTI specific attributes iff the __attribute__((target("branch-protection=...))) was used in the function declaration.
- command-line option -mbranch-protection to armclang targeting Arm, following this grammar:
branch-protection ::= "-mbranch-protection=" <protection> protection ::= "none" | "standard" | "bti" [ "+" <pac-ret-clause> ] | <pac-ret-clause> [ "+" "bti"] pac-ret-clause ::= "pac-ret" [ "+" <pac-ret-option> ] pac-ret-option ::= "leaf" ["+" "b-key"] | "b-key" ["+" "leaf"]
b-key is simply a placeholder to make it consistent with AArch64's version. In Arm, however, it triggers a warning informing that b-key is unsupported and a-key will be selected instead.
- Handle _attribute_((target(("branch-protection=..."))) for AArch32 with the same grammer as the commandline options.
This patch is part of a series that adds support for the PACBTI-M extension of the Armv8.1-M architecture, as detailed here:
https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/armv8-1-m-pointer-authentication-and-branch-target-identification-extension
The PACBTI-M specification can be found in the Armv8-M Architecture Reference Manual:
https://developer.arm.com/documentation/ddi0553/latest
The following people contributed to this patch:
- Momchil Velikov - Victor Campos - Ties Stuij
Reviewed By: vhscampos
Differential Revision: https://reviews.llvm.org/D112421
show more ...
|
| #
8689f5e6 |
| 20-Sep-2021 |
Alexandros Lamprineas <[email protected]> |
[AArch64] Add support for the 'R' architecture profile.
This change introduces subtarget features to predicate certain instructions and system registers that are available only on 'A' profile target
[AArch64] Add support for the 'R' architecture profile.
This change introduces subtarget features to predicate certain instructions and system registers that are available only on 'A' profile targets. Those features are not present when targeting a generic CPU, which is the default processor.
In other words the generic CPU now means the intersection of 'A' and 'R' profiles. To maintain backwards compatibility we enable the features that correspond to -march=armv8-a when the architecture is not explicitly specified on the command line.
References: https://developer.arm.com/documentation/ddi0600/latest
Differential Revision: https://reviews.llvm.org/D110065
show more ...
|
| #
3550e242 |
| 08-Sep-2021 |
Victor Campos <[email protected]> |
[Clang][ARM][AArch64] Add support for Armv9-A, Armv9.1-A and Armv9.2-A
armv9-a, armv9.1-a and armv9.2-a can be targeted using the -march option both in ARM and AArch64.
- Armv9-A maps to Armv8.5-A
[Clang][ARM][AArch64] Add support for Armv9-A, Armv9.1-A and Armv9.2-A
armv9-a, armv9.1-a and armv9.2-a can be targeted using the -march option both in ARM and AArch64.
- Armv9-A maps to Armv8.5-A. - Armv9.1-A maps to Armv8.6-A. - Armv9.2-A maps to Armv8.7-A. - The SVE2 extension is enabled by default on these architectures. - The cryptographic extensions are disabled by default on these architectures.
The Armv9-A architecture is described in the Arm® Architecture Reference Manual Supplement Armv9, for Armv9-A architecture profile (https://developer.arm.com/documentation/ddi0608/latest).
Reviewed By: SjoerdMeijer
Differential Revision: https://reviews.llvm.org/D109517
show more ...
|
| #
9e426751 |
| 12-Jul-2021 |
Cullen Rhodes <[email protected]> |
[AArch64] Add target features for Armv9-A Scalable Matrix Extension (SME)
First patch in a series adding MC layer support for the Arm Scalable Matrix Extension.
This patch adds the following featur
[AArch64] Add target features for Armv9-A Scalable Matrix Extension (SME)
First patch in a series adding MC layer support for the Arm Scalable Matrix Extension.
This patch adds the following features:
sme, sme-i64, sme-f64
The sme-i64 and sme-f64 flags are for the optional I16I64 and F64F64 features.
If a target supports I16I64 then the following instructions are implemented:
* 64-bit integer ADDHA and ADDVA variants (D105570). * SMOPA, SMOPS, SUMOPA, SUMOPS, UMOPA, UMOPS, USMOPA, and USMOPS instructions that accumulate 16-bit integer outer products into 64-bit integer tiles.
If a target supports F64F64 then the FMOPA and FMOPS instructions that accumulate double-precision floating-point outer products into double-precision tiles are implemented.
Outer products are implemented in D105571.
The reference can be found here: https://developer.arm.com/documentation/ddi0602/2021-06
Reviewed By: CarolineConcatto
Differential Revision: https://reviews.llvm.org/D105569
show more ...
|
|
Revision tags: llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1 |
|
| #
7d4a8bc4 |
| 05-Jan-2021 |
Mark Murray <[email protected]> |
[AArch64] Add +flagm archictecture option, allowing the v8.4a flag modification extension.
Differential Revision: https://reviews.llvm.org/D94081
|
| #
af7cce2f |
| 04-Jan-2021 |
Mark Murray <[email protected]> |
[AArch64] Add +pauth archictecture option, allowing the v8.3a pointer authentication extension.
Differential Revision: https://reviews.llvm.org/D94083
|
|
Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1 |
|
| #
da21f7ec |
| 19-Nov-2020 |
Lucas Prates <[email protected]> |
[AArch64] Add support for the Branch Record Buffer extension
This introduces asm support for the Branch Record Buffer extension, through the new 'brbe' subtarget feature. It consists of a new set of
[AArch64] Add support for the Branch Record Buffer extension
This introduces asm support for the Branch Record Buffer extension, through the new 'brbe' subtarget feature. It consists of a new set of system registers that enable the handling of branch records.
Patch written by Simon Tatham.
Reviewed By: ostannard
Differential Revision: https://reviews.llvm.org/D92389
show more ...
|
| #
c4d851b0 |
| 16-Nov-2020 |
Lucas Prates <[email protected]> |
[ARM][AAarch64] Initial command-line support for v8.7-A
This introduces command-line support for the 'armv8.7-a' architecture name (and an alias without the '-', as usual), and for the 'ls64' extens
[ARM][AAarch64] Initial command-line support for v8.7-A
This introduces command-line support for the 'armv8.7-a' architecture name (and an alias without the '-', as usual), and for the 'ls64' extension name.
Based on patches written by Simon Tatham.
Reviewed By: ostannard
Differential Revision: https://reviews.llvm.org/D91776
show more ...
|
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6 |
|
| #
8825fec3 |
| 01-Oct-2020 |
Sjoerd Meijer <[email protected]> |
[AArch64] Add CPU Cortex-R82
This adds support for -mcpu=cortex-r82. Some more information about this core can be found here:
https://www.arm.com/products/silicon-ip-cpu/cortex-r/cortex-r82
One no
[AArch64] Add CPU Cortex-R82
This adds support for -mcpu=cortex-r82. Some more information about this core can be found here:
https://www.arm.com/products/silicon-ip-cpu/cortex-r/cortex-r82
One note about the system register: that is a bit of a refactoring because of small differences between v8.4-A AArch64 and v8-R AArch64.
This is based on patches from Mark Murray and Mikhail Maltsev.
Differential Revision: https://reviews.llvm.org/D88660
show more ...
|
|
Revision tags: llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3 |
|
| #
c145a1ca |
| 17-Sep-2020 |
Jon Roelofs <[email protected]> |
AArch64::ArchKind's underlying type is uint64_t
|
|
Revision tags: llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1 |
|
| #
ffd9cfa7 |
| 07-May-2020 |
Simon Pilgrim <[email protected]> |
AArch6/ARMTargetParser.h - move Triple.h dependency down to cpp file. NFC.
Reduce Triple.h include to a forward declaration in the header. Only the implementations in the cpp files need the actual T
AArch6/ARMTargetParser.h - move Triple.h dependency down to cpp file. NFC.
Reduce Triple.h include to a forward declaration in the header. Only the implementations in the cpp files need the actual Triple class definition.
show more ...
|
| #
71ae267d |
| 26-Mar-2020 |
Ties Stuij <[email protected]> |
[PATCH] [ARM] ARMv8.6-a command-line + BFloat16 Asm Support
Summary: This patch introduces command-line support for the Armv8.6-a architecture and assembly support for BFloat16. Details can be found
[PATCH] [ARM] ARMv8.6-a command-line + BFloat16 Asm Support
Summary: This patch introduces command-line support for the Armv8.6-a architecture and assembly support for BFloat16. Details can be found https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a
in addition to the GCC patch for the 8..6-a CLI: https://gcc.gnu.org/legacy-ml/gcc-patches/2019-11/msg02647.html
In detail this patch
- march options for armv8.6-a - BFloat16 assembly
This is part of a patch series, starting with command-line and Bfloat16 assembly support. The subsequent patches will upstream intrinsics support for BFloat16, followed by Matrix Multiplication and the remaining Virtualization features of the armv8.6-a architecture.
Based on work by: - labrinea - MarkMurrayARM - Luke Cheeseman - Javed Asbar - Mikhail Maltsev - Luke Geeson
Reviewers: SjoerdMeijer, craig.topper, rjmccall, jfb, LukeGeeson
Reviewed By: SjoerdMeijer
Subscribers: stuij, kristof.beyls, hiraditya, dexonsmith, danielkiss, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D76062
show more ...
|
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2 |
|
| #
f3bacd07 |
| 05-Feb-2020 |
Reid Kleckner <[email protected]> |
Fix some more -Wrange-loop-analysis warnings in AArch64TargetParser
|
|
Revision tags: llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1 |
|
| #
aa6d48fa |
| 15-Nov-2019 |
Momchil Velikov <[email protected]> |
Implement target(branch-protection) attribute for AArch64
This patch implements `__attribute__((target("branch-protection=...")))` in a manner, compatible with the analogous GCC feature:
https://gc
Implement target(branch-protection) attribute for AArch64
This patch implements `__attribute__((target("branch-protection=...")))` in a manner, compatible with the analogous GCC feature:
https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/AArch64-Function-Attributes.html#AArch64-Function-Attributes
Differential Revision: https://reviews.llvm.org/D68711
show more ...
|
|
Revision tags: llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1 |
|
| #
2cde8b5d |
| 26-Jul-2019 |
Cullen Rhodes <[email protected]> |
[AArch64][SVE2] Rename bitperm feature to sve2-bitperm
Summary: The bitperm feature flag is now prefixed with SVE2, as it is for all other SVE2 extensions
Patch by Maciej Gabka.
Reviewers: sdesmal
[AArch64][SVE2] Rename bitperm feature to sve2-bitperm
Summary: The bitperm feature flag is now prefixed with SVE2, as it is for all other SVE2 extensions
Patch by Maciej Gabka.
Reviewers: sdesmalen, rovka, chill, SjoerdMeijer, rengolin
Reviewed By: SjoerdMeijer, rengolin
Differential Revision: https://reviews.llvm.org/D65327
llvm-svn: 367124
show more ...
|