[llvm] [AArch64] Neoverse V2 FeatureDisableLatencySchedHeuristic (PR #140897)
via llvm-commits
llvm-commits at lists.llvm.org
Wed May 21 06:24:22 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-aarch64
Author: Sjoerd Meijer (sjoerdmeijer)
<details>
<summary>Changes</summary>
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 (#<!-- -->127784), and #<!-- -->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.
---
Full diff: https://github.com/llvm/llvm-project/pull/140897.diff
1 Files Affected:
- (modified) llvm/lib/Target/AArch64/AArch64Processors.td (+2-1)
``````````diff
diff --git a/llvm/lib/Target/AArch64/AArch64Processors.td b/llvm/lib/Target/AArch64/AArch64Processors.td
index a5f0f6a2eb150..e7a3527202f6a 100644
--- a/llvm/lib/Target/AArch64/AArch64Processors.td
+++ b/llvm/lib/Target/AArch64/AArch64Processors.td
@@ -561,7 +561,8 @@ def TuneNeoverseV2 : SubtargetFeature<"neoversev2", "ARMProcFamily", "NeoverseV2
FeatureEnableSelectOptimize,
FeatureUseFixedOverScalableIfEqualCost,
FeatureAvoidLDAPUR,
- FeaturePredictableSelectIsExpensive]>;
+ FeaturePredictableSelectIsExpensive,
+ FeatureDisableLatencySchedHeuristic]>;
def TuneNeoverseV3 : SubtargetFeature<"neoversev3", "ARMProcFamily", "NeoverseV3",
"Neoverse V3 ARM processors", [
``````````
</details>
https://github.com/llvm/llvm-project/pull/140897
More information about the llvm-commits
mailing list