summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorPankaj Gode <pankaj.gode@broadcom.com>2016-06-20 11:13:31 +0000
committerPankaj Gode <pankaj.gode@broadcom.com>2016-06-20 11:13:31 +0000
commit0aab2e398a240d5f8fd104a19b6d940ab0dbb98a (patch)
treee9dec611ffb08d7fbce4008a5742d982d3d1b5da /llvm/lib
parente8e1ffef117aaad63139603b29d34a847f9c6208 (diff)
downloadbcm5719-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.td9
-rw-r--r--llvm/lib/Target/AArch64/AArch64Subtarget.cpp1
-rw-r--r--llvm/lib/Target/AArch64/AArch64Subtarget.h3
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:
OpenPOWER on IntegriCloud