Skip to content

Commit ad2fd9f

Browse files
sjoerdmeijertomtor
authored andcommitted
[AArch64] Neoverse V2 FeatureDisableLatencySchedHeuristic (llvm#140897)
This adds FeatureDisableLatencySchedHeuristic to the Neoverse V2 core tuning description. This gives us a 20% improvement on a key workload, some other minor improvements here and there, and no real regressions; nothing outside the noise levels. Earlier attempts to solve this problems included disabling the MI scheduler entirely (llvm#127784), and llvm#139557 was about a heuristic to not schedule hand-written vector code. This solution is preferred because it avoids another heuristic and achieves what we want, and for what is worth, there is a lot of precedent for setting this feature. Thanks to: - Ricardo Jesus for pointing out this subtarget feature, and - Cameron McInally for the extensive performance testing.
1 parent c0bfc05 commit ad2fd9f

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

llvm/lib/Target/AArch64/AArch64Processors.td

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,8 @@ def TuneNeoverseV2 : SubtargetFeature<"neoversev2", "ARMProcFamily", "NeoverseV2
561561
FeatureEnableSelectOptimize,
562562
FeatureUseFixedOverScalableIfEqualCost,
563563
FeatureAvoidLDAPUR,
564-
FeaturePredictableSelectIsExpensive]>;
564+
FeaturePredictableSelectIsExpensive,
565+
FeatureDisableLatencySchedHeuristic]>;
565566

566567
def TuneNeoverseV3 : SubtargetFeature<"neoversev3", "ARMProcFamily", "NeoverseV3",
567568
"Neoverse V3 ARM processors", [

0 commit comments

Comments
 (0)