Skip to content

Commit 2852088

Browse files
committedMar 7, 2017
[AArch64] Vulcan is now ThunderXT99
Broadcom Vulcan is now Cavium ThunderX2T99. LLVM Bugzilla: http://bugs.llvm.org/show_bug.cgi?id=32113 Minor fixes for the alignments of loops and functions for ThunderX T81/T83/T88 (better performance). Patch was tested with SpecCPU2006. Patch by Stefan Teleman Differential Revision: https://reviews.llvm.org/D30510 llvm-svn: 297190
1 parent 3a8ec02 commit 2852088

File tree

10 files changed

+213
-201
lines changed

10 files changed

+213
-201
lines changed
 

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

+3-2
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,9 @@ AARCH64_CPU_NAME("falkor", AK_ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
7373
(AArch64::AEK_SIMD | AArch64::AEK_CRC | AArch64::AEK_CRYPTO))
7474
AARCH64_CPU_NAME("kryo", AK_ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
7575
(AArch64::AEK_SIMD | AArch64::AEK_CRC | AArch64::AEK_CRYPTO))
76-
AARCH64_CPU_NAME("vulcan", AK_ARMV8_1A, FK_CRYPTO_NEON_FP_ARMV8, false,
77-
(AArch64::AEK_SIMD | AArch64::AEK_CRC | AArch64::AEK_CRYPTO))
76+
AARCH64_CPU_NAME("thunderx2t99", AK_ARMV8_1A, FK_CRYPTO_NEON_FP_ARMV8, false,
77+
(AArch64::AEK_SIMD | AArch64::AEK_LSE | AArch64::AEK_CRC |
78+
AArch64::AEK_CRYPTO))
7879
AARCH64_CPU_NAME("thunderx", AK_ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,
7980
(AArch64::AEK_SIMD | AArch64::AEK_CRC | AArch64::AEK_CRYPTO | AArch64::AEK_FP | AArch64::AEK_PROFILE))
8081
AARCH64_CPU_NAME("thunderxt88", AK_ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false,

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

+15-12
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ include "AArch64SchedFalkor.td"
161161
include "AArch64SchedKryo.td"
162162
include "AArch64SchedM1.td"
163163
include "AArch64SchedThunderX.td"
164-
include "AArch64SchedVulcan.td"
164+
include "AArch64SchedThunderX2T99.td"
165165

166166
def ProcA35 : SubtargetFeature<"a35", "ARMProcFamily", "CortexA35",
167167
"Cortex-A35 ARM processors", [
@@ -288,16 +288,18 @@ def ProcFalkor : SubtargetFeature<"falkor", "ARMProcFamily", "Falkor",
288288
FeatureZCZeroing
289289
]>;
290290

291-
def ProcVulcan : SubtargetFeature<"vulcan", "ARMProcFamily", "Vulcan",
292-
"Broadcom Vulcan processors", [
293-
FeatureCRC,
294-
FeatureCrypto,
295-
FeatureFPARMv8,
296-
FeatureArithmeticBccFusion,
297-
FeatureNEON,
298-
FeaturePostRAScheduler,
299-
FeaturePredictableSelectIsExpensive,
300-
HasV8_1aOps]>;
291+
def ProcThunderX2T99 : SubtargetFeature<"thunderx2t99", "ARMProcFamily",
292+
"ThunderX2T99",
293+
"Cavium ThunderX2 processors", [
294+
FeatureCRC,
295+
FeatureCrypto,
296+
FeatureFPARMv8,
297+
FeatureArithmeticBccFusion,
298+
FeatureNEON,
299+
FeaturePostRAScheduler,
300+
FeaturePredictableSelectIsExpensive,
301+
FeatureLSE,
302+
HasV8_1aOps]>;
301303

302304
def ProcThunderX : SubtargetFeature<"thunderx", "ARMProcFamily", "ThunderX",
303305
"Cavium ThunderX processors", [
@@ -363,12 +365,13 @@ def : ProcessorModel<"exynos-m2", ExynosM1Model, [ProcExynosM2]>;
363365
def : ProcessorModel<"exynos-m3", ExynosM1Model, [ProcExynosM2]>;
364366
def : ProcessorModel<"falkor", FalkorModel, [ProcFalkor]>;
365367
def : ProcessorModel<"kryo", KryoModel, [ProcKryo]>;
366-
def : ProcessorModel<"vulcan", VulcanModel, [ProcVulcan]>;
367368
// Cavium ThunderX/ThunderX T8X Processors
368369
def : ProcessorModel<"thunderx", ThunderXT8XModel, [ProcThunderX]>;
369370
def : ProcessorModel<"thunderxt88", ThunderXT8XModel, [ProcThunderXT88]>;
370371
def : ProcessorModel<"thunderxt81", ThunderXT8XModel, [ProcThunderXT81]>;
371372
def : ProcessorModel<"thunderxt83", ThunderXT8XModel, [ProcThunderXT83]>;
373+
// Cavium ThunderX2T9X Processors. Formerly Broadcom Vulcan.
374+
def : ProcessorModel<"thunderx2t99", ThunderX2T99Model, [ProcThunderX2T99]>;
372375

373376
//===----------------------------------------------------------------------===//
374377
// Assembly parser

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

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def ThunderXT8XModel : SchedMachineModel {
2323
let MicroOpBufferSize = 0; // ThunderX T88/T81/T83 are in-order.
2424
let LoadLatency = 3; // Optimistic load latency.
2525
let MispredictPenalty = 8; // Branch mispredict penalty.
26+
let PostRAScheduler = 1; // Use PostRA scheduler.
2627
let CompleteModel = 1;
2728
}
2829

0 commit comments

Comments
 (0)
Please sign in to comment.