Skip to content

Commit 0aab2e3

Browse files
committedJun 20, 2016
[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
1 parent e8e1ffe commit 0aab2e3

File tree

6 files changed

+16
-1
lines changed

6 files changed

+16
-1
lines changed
 

‎llvm/include/llvm/Support/AArch64TargetParser.def

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ AARCH64_CPU_NAME("exynos-m1", AK_ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
6565
(AArch64::AEK_SIMD | AArch64::AEK_CRC | AArch64::AEK_CRYPTO))
6666
AARCH64_CPU_NAME("kryo", AK_ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
6767
(AArch64::AEK_SIMD | AArch64::AEK_CRC | AArch64::AEK_CRYPTO))
68+
AARCH64_CPU_NAME("vulcan", AK_ARMV8_1A, FK_CRYPTO_NEON_FP_ARMV8, false,
69+
(AArch64::AEK_SIMD | AArch64::AEK_CRC | AArch64::AEK_CRYPTO))
6870
// Invalid CPU
6971
AARCH64_CPU_NAME("invalid", AK_INVALID, FK_INVALID, true, AArch64::AEK_INVALID)
7072
#undef AARCH64_CPU_NAME

‎llvm/lib/Target/AArch64/AArch64.td

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,14 @@ def ProcKryo : SubtargetFeature<"kryo", "ARMProcFamily", "Kryo",
215215
FeaturePredictableSelectIsExpensive
216216
]>;
217217

218+
def ProcVulcan : SubtargetFeature<"vulcan", "ARMProcFamily", "Vulcan",
219+
"Broadcom Vulcan processors", [
220+
FeatureFPARMv8,
221+
FeatureNEON,
222+
FeatureCrypto,
223+
FeatureCRC,
224+
HasV8_1aOps]>;
225+
218226
def : ProcessorModel<"generic", NoSchedModel, [
219227
FeatureCRC,
220228
FeatureFPARMv8,
@@ -233,6 +241,7 @@ def : ProcessorModel<"cortex-a73", CortexA57Model, [ProcA57]>;
233241
def : ProcessorModel<"cyclone", CycloneModel, [ProcCyclone]>;
234242
def : ProcessorModel<"exynos-m1", ExynosM1Model, [ProcExynosM1]>;
235243
def : ProcessorModel<"kryo", KryoModel, [ProcKryo]>;
244+
def : ProcessorModel<"vulcan", NoSchedModel, [ProcVulcan]>;
236245

237246
//===----------------------------------------------------------------------===//
238247
// Assembly parser

‎llvm/lib/Target/AArch64/AArch64Subtarget.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ void AArch64Subtarget::initializeProperties() {
7171
MaxInterleaveFactor = 4;
7272
VectorInsertExtractBaseCost = 2;
7373
break;
74+
case Vulcan: break;
7475
case CortexA35: break;
7576
case CortexA53: break;
7677
case Others: break;

‎llvm/lib/Target/AArch64/AArch64Subtarget.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ class AArch64Subtarget : public AArch64GenSubtargetInfo {
4141
CortexA57,
4242
Cyclone,
4343
ExynosM1,
44-
Kryo
44+
Kryo,
45+
Vulcan
4546
};
4647

4748
protected:

‎llvm/test/CodeGen/AArch64/cpus.ll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=cortex-a73 2>&1 | FileCheck %s
1010
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=exynos-m1 2>&1 | FileCheck %s
1111
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=kryo 2>&1 | FileCheck %s
12+
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=vulcan 2>&1 | FileCheck %s
1213
; RUN: llc < %s -mtriple=arm64-unknown-unknown -mcpu=invalidcpu 2>&1 | FileCheck %s --check-prefix=INVALID
1314

1415
; CHECK-NOT: {{.*}} is not a recognized processor for this target

‎llvm/test/CodeGen/AArch64/remat.ll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=cortex-a73 -o - %s | FileCheck %s
66
; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=exynos-m1 -o - %s | FileCheck %s
77
; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=kryo -o - %s | FileCheck %s
8+
; RUN: llc -mtriple=aarch64-linux-gnuabi -mcpu=vulcan -o - %s | FileCheck %s
89

910
%X = type { i64, i64, i64 }
1011
declare void @f(%X*)

0 commit comments

Comments
 (0)
Please sign in to comment.