diff options
author | Pankaj Gode <pankaj.gode@broadcom.com> | 2016-06-20 11:13:31 +0000 |
---|---|---|
committer | Pankaj Gode <pankaj.gode@broadcom.com> | 2016-06-20 11:13:31 +0000 |
commit | 0aab2e398a240d5f8fd104a19b6d940ab0dbb98a (patch) | |
tree | e9dec611ffb08d7fbce4008a5742d982d3d1b5da /llvm/lib | |
parent | e8e1ffef117aaad63139603b29d34a847f9c6208 (diff) | |
download | bcm5719-llvm-0aab2e398a240d5f8fd104a19b6d940ab0dbb98a.tar.gz bcm5719-llvm-0aab2e398a240d5f8fd104a19b6d940ab0dbb98a.zip |
[AARCH64] Add support for Broadcom Vulcan
Adding core tuning support for new Broadcom Vulcan core (ARMv8.1A).
Differential Revision: http://reviews.llvm.org/D21500
llvm-svn: 273148
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64.td | 9 | ||||
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64Subtarget.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64Subtarget.h | 3 |
3 files changed, 12 insertions, 1 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64.td b/llvm/lib/Target/AArch64/AArch64.td index a447de566ad..954da543d94 100644 --- a/llvm/lib/Target/AArch64/AArch64.td +++ b/llvm/lib/Target/AArch64/AArch64.td @@ -215,6 +215,14 @@ def ProcKryo : SubtargetFeature<"kryo", "ARMProcFamily", "Kryo", FeaturePredictableSelectIsExpensive ]>; +def ProcVulcan : SubtargetFeature<"vulcan", "ARMProcFamily", "Vulcan", + "Broadcom Vulcan processors", [ + FeatureFPARMv8, + FeatureNEON, + FeatureCrypto, + FeatureCRC, + HasV8_1aOps]>; + def : ProcessorModel<"generic", NoSchedModel, [ FeatureCRC, FeatureFPARMv8, @@ -233,6 +241,7 @@ def : ProcessorModel<"cortex-a73", CortexA57Model, [ProcA57]>; def : ProcessorModel<"cyclone", CycloneModel, [ProcCyclone]>; def : ProcessorModel<"exynos-m1", ExynosM1Model, [ProcExynosM1]>; def : ProcessorModel<"kryo", KryoModel, [ProcKryo]>; +def : ProcessorModel<"vulcan", NoSchedModel, [ProcVulcan]>; //===----------------------------------------------------------------------===// // Assembly parser diff --git a/llvm/lib/Target/AArch64/AArch64Subtarget.cpp b/llvm/lib/Target/AArch64/AArch64Subtarget.cpp index 3354cbd1a53..68c8dbfaa71 100644 --- a/llvm/lib/Target/AArch64/AArch64Subtarget.cpp +++ b/llvm/lib/Target/AArch64/AArch64Subtarget.cpp @@ -71,6 +71,7 @@ void AArch64Subtarget::initializeProperties() { MaxInterleaveFactor = 4; VectorInsertExtractBaseCost = 2; break; + case Vulcan: break; case CortexA35: break; case CortexA53: break; case Others: break; diff --git a/llvm/lib/Target/AArch64/AArch64Subtarget.h b/llvm/lib/Target/AArch64/AArch64Subtarget.h index 43d4141aadf..f16daa8b7ca 100644 --- a/llvm/lib/Target/AArch64/AArch64Subtarget.h +++ b/llvm/lib/Target/AArch64/AArch64Subtarget.h @@ -41,7 +41,8 @@ public: CortexA57, Cyclone, ExynosM1, - Kryo + Kryo, + Vulcan }; protected: |