[llvm] [llvm][ARM][NFC] Renaming FeaturePrefLoopLogAlign (PR #109932)
Nashe Mncube via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 26 02:20:42 PDT 2024
https://github.com/nasherm updated https://github.com/llvm/llvm-project/pull/109932
>From 19d72e0aa30646580de691491156c31c98ecb2fc Mon Sep 17 00:00:00 2001
From: nasmnc01 <nashe.mncube at arm.com>
Date: Tue, 24 Sep 2024 16:16:52 +0100
Subject: [PATCH 1/2] [llvm][ARM][NFC] Renaming FeaturePrefLoopLogAlign
The feature 'FeaturePrefLoopLogAlign' was misleading
as it was used to set the alignment of branch instructions
such as functions. Renamed to FeaturePrefBranchInstAlignment.
Change-Id: I88edcf2fe946d50fc33765273d36e1abcbe9d959
---
llvm/lib/Target/ARM/ARMFeatures.td | 8 ++++----
llvm/lib/Target/ARM/ARMISelLowering.cpp | 6 ++++--
llvm/lib/Target/ARM/ARMProcessors.td | 16 ++++++++--------
llvm/lib/Target/ARM/ARMSubtarget.cpp | 2 +-
llvm/lib/Target/ARM/ARMSubtarget.h | 6 ++++--
5 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/llvm/lib/Target/ARM/ARMFeatures.td b/llvm/lib/Target/ARM/ARMFeatures.td
index dc0e86c696f63a..d40da67a7f2ba5 100644
--- a/llvm/lib/Target/ARM/ARMFeatures.td
+++ b/llvm/lib/Target/ARM/ARMFeatures.td
@@ -372,11 +372,11 @@ def FeatureVMLxForwarding : SubtargetFeature<"vmlx-forwarding",
def FeaturePref32BitThumb : SubtargetFeature<"32bit", "Prefers32BitThumb", "true",
"Prefer 32-bit Thumb instrs">;
-def FeaturePrefLoopAlign32 : SubtargetFeature<"loop-align", "PrefLoopLogAlignment","2",
- "Prefer 32-bit alignment for loops">;
+def FeaturePrefBranchInstAlign32 : SubtargetFeature<"loop-align", "PrefBranchInstLogAlignment","2",
+ "Prefer 32-bit alignment for branch instructions (loops, functions)">;
-def FeaturePrefLoopAlign64 : SubtargetFeature<"loop-align-64", "PrefLoopLogAlignment","3",
- "Prefer 64-bit alignment for loops">;
+def FeaturePrefBranchInstAlign64 : SubtargetFeature<"loop-align-64", "PrefBranchInstLogAlignment","3",
+ "Prefer 64-bit alignment for branch instructions (loops, functions">;
def FeatureMVEVectorCostFactor1 : SubtargetFeature<"mve1beat", "MVEVectorCostFactor", "4",
"Model MVE instructions as a 1 beat per tick architecture">;
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index a03928b618df03..d3c027c999b7b3 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -1635,8 +1635,10 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM,
// Prefer likely predicted branches to selects on out-of-order cores.
PredictableSelectIsExpensive = Subtarget->getSchedModel().isOutOfOrder();
- setPrefLoopAlignment(Align(1ULL << Subtarget->getPrefLoopLogAlignment()));
- setPrefFunctionAlignment(Align(1ULL << Subtarget->getPrefLoopLogAlignment()));
+ setPrefLoopAlignment(
+ Align(1ULL << Subtarget->getPrefBranchInstLogAlignment()));
+ setPrefFunctionAlignment(
+ Align(1ULL << Subtarget->getPrefBranchInstLogAlignment()));
setMinFunctionAlignment(Subtarget->isThumb() ? Align(2) : Align(4));
}
diff --git a/llvm/lib/Target/ARM/ARMProcessors.td b/llvm/lib/Target/ARM/ARMProcessors.td
index a66a2c0b1981d8..0f803af81eead3 100644
--- a/llvm/lib/Target/ARM/ARMProcessors.td
+++ b/llvm/lib/Target/ARM/ARMProcessors.td
@@ -324,7 +324,7 @@ def : ProcessorModel<"cortex-r8", CortexA8Model, [ARMv7r,
def : ProcessorModel<"cortex-m3", CortexM4Model, [ARMv7m,
ProcM3,
- FeaturePrefLoopAlign32,
+ FeaturePrefBranchInstAlign32,
FeatureUseMISched,
FeatureHasNoBranchPredictor]>;
@@ -335,7 +335,7 @@ def : ProcessorModel<"sc300", CortexM4Model, [ARMv7m,
def : ProcessorModel<"cortex-m4", CortexM4Model, [ARMv7em,
FeatureVFP4_D16_SP,
- FeaturePrefLoopAlign32,
+ FeaturePrefBranchInstAlign32,
FeatureHasSlowFPVMLx,
FeatureHasSlowFPVFMx,
FeatureUseMISched,
@@ -344,7 +344,7 @@ def : ProcessorModel<"cortex-m4", CortexM4Model, [ARMv7em,
def : ProcessorModel<"cortex-m7", CortexM7Model, [ARMv7em,
ProcM7,
FeatureFPARMv8_D16,
- FeaturePrefLoopAlign64,
+ FeaturePrefBranchInstAlign64,
FeatureUseMIPipeliner,
FeatureUseMISched]>;
@@ -355,7 +355,7 @@ def : ProcNoItin<"cortex-m23", [ARMv8mBaseline,
def : ProcessorModel<"cortex-m33", CortexM4Model, [ARMv8mMainline,
FeatureDSP,
FeatureFPARMv8_D16_SP,
- FeaturePrefLoopAlign32,
+ FeaturePrefBranchInstAlign32,
FeatureHasSlowFPVMLx,
FeatureHasSlowFPVFMx,
FeatureUseMISched,
@@ -365,7 +365,7 @@ def : ProcessorModel<"cortex-m33", CortexM4Model, [ARMv8mMainline,
def : ProcessorModel<"cortex-m35p", CortexM4Model, [ARMv8mMainline,
FeatureDSP,
FeatureFPARMv8_D16_SP,
- FeaturePrefLoopAlign32,
+ FeaturePrefBranchInstAlign32,
FeatureHasSlowFPVMLx,
FeatureHasSlowFPVFMx,
FeatureUseMISched,
@@ -377,7 +377,7 @@ def : ProcessorModel<"cortex-m55", CortexM55Model, [ARMv81mMainline,
FeatureFPARMv8_D16,
FeatureUseMISched,
FeatureHasNoBranchPredictor,
- FeaturePrefLoopAlign32,
+ FeaturePrefBranchInstAlign32,
FeatureHasSlowFPVMLx,
HasMVEFloatOps,
FeatureFixCMSE_CVE_2021_35465]>;
@@ -386,7 +386,7 @@ def : ProcessorModel<"cortex-m85", CortexM85Model, [ARMv81mMainline,
FeatureDSP,
FeatureFPARMv8_D16,
FeaturePACBTI,
- FeaturePrefLoopAlign64,
+ FeaturePrefBranchInstAlign64,
FeatureUseMISched,
HasMVEFloatOps]>;
@@ -396,7 +396,7 @@ def : ProcessorModel<"cortex-m52", CortexM55Model, [ARMv81mMainline,
FeatureHasNoBranchPredictor,
FeaturePACBTI,
FeatureUseMISched,
- FeaturePrefLoopAlign32,
+ FeaturePrefBranchInstAlign32,
FeatureHasSlowFPVMLx,
FeatureMVEVectorCostFactor1,
HasMVEFloatOps]>;
diff --git a/llvm/lib/Target/ARM/ARMSubtarget.cpp b/llvm/lib/Target/ARM/ARMSubtarget.cpp
index 13018e647e8223..fcd77bbf293726 100644
--- a/llvm/lib/Target/ARM/ARMSubtarget.cpp
+++ b/llvm/lib/Target/ARM/ARMSubtarget.cpp
@@ -302,7 +302,7 @@ void ARMSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
LdStMultipleTiming = SingleIssuePlusExtras;
MaxInterleaveFactor = 4;
if (!isThumb())
- PrefLoopLogAlignment = 3;
+ PrefBranchInstLogAlignment = 3;
break;
case Kryo:
break;
diff --git a/llvm/lib/Target/ARM/ARMSubtarget.h b/llvm/lib/Target/ARM/ARMSubtarget.h
index fa20f4b590bea5..02c5ced6d30475 100644
--- a/llvm/lib/Target/ARM/ARMSubtarget.h
+++ b/llvm/lib/Target/ARM/ARMSubtarget.h
@@ -133,7 +133,7 @@ class ARMSubtarget : public ARMGenSubtargetInfo {
int PreISelOperandLatencyAdjustment = 2;
/// What alignment is preferred for loop bodies and functions, in log2(bytes).
- unsigned PrefLoopLogAlignment = 0;
+ unsigned PrefBranchInstLogAlignment = 0;
/// The cost factor for MVE instructions, representing the multiple beats an
// instruction can take. The default is 2, (set in initSubtargetFeatures so
@@ -476,7 +476,9 @@ class ARMSubtarget : public ARMGenSubtargetInfo {
return isROPI() || !isTargetELF();
}
- unsigned getPrefLoopLogAlignment() const { return PrefLoopLogAlignment; }
+ unsigned getPrefBranchInstLogAlignment() const {
+ return PrefBranchInstLogAlignment;
+ }
unsigned
getMVEVectorCostFactor(TargetTransformInfo::TargetCostKind CostKind) const {
>From 02ac9ddc328d24ad4a2f3abc616f8e9f8b67e1f6 Mon Sep 17 00:00:00 2001
From: nasmnc01 <nashe.mncube at arm.com>
Date: Thu, 26 Sep 2024 10:16:54 +0100
Subject: [PATCH 2/2] Review comments
Change-Id: If0549d2bd62209279f5d21b90609ad42a1d116d4
---
llvm/lib/Target/ARM/ARMFeatures.td | 8 ++++----
llvm/lib/Target/ARM/ARMISelLowering.cpp | 4 ++--
llvm/lib/Target/ARM/ARMProcessors.td | 16 ++++++++--------
llvm/lib/Target/ARM/ARMSubtarget.cpp | 2 +-
llvm/lib/Target/ARM/ARMSubtarget.h | 6 +++---
5 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/llvm/lib/Target/ARM/ARMFeatures.td b/llvm/lib/Target/ARM/ARMFeatures.td
index d40da67a7f2ba5..f32aceef8c23cc 100644
--- a/llvm/lib/Target/ARM/ARMFeatures.td
+++ b/llvm/lib/Target/ARM/ARMFeatures.td
@@ -372,11 +372,11 @@ def FeatureVMLxForwarding : SubtargetFeature<"vmlx-forwarding",
def FeaturePref32BitThumb : SubtargetFeature<"32bit", "Prefers32BitThumb", "true",
"Prefer 32-bit Thumb instrs">;
-def FeaturePrefBranchInstAlign32 : SubtargetFeature<"loop-align", "PrefBranchInstLogAlignment","2",
- "Prefer 32-bit alignment for branch instructions (loops, functions)">;
+def FeaturePrefBranchAlign32 : SubtargetFeature<"loop-align", "PrefBranchLogAlignment","2",
+ "Prefer 32-bit alignment for branch targets">;
-def FeaturePrefBranchInstAlign64 : SubtargetFeature<"loop-align-64", "PrefBranchInstLogAlignment","3",
- "Prefer 64-bit alignment for branch instructions (loops, functions">;
+def FeaturePrefBranchAlign64 : SubtargetFeature<"loop-align-64", "PrefBranchLogAlignment","3",
+ "Prefer 64-bit alignment for branch targets">;
def FeatureMVEVectorCostFactor1 : SubtargetFeature<"mve1beat", "MVEVectorCostFactor", "4",
"Model MVE instructions as a 1 beat per tick architecture">;
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index d3c027c999b7b3..fc07a455178765 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -1636,9 +1636,9 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM,
PredictableSelectIsExpensive = Subtarget->getSchedModel().isOutOfOrder();
setPrefLoopAlignment(
- Align(1ULL << Subtarget->getPrefBranchInstLogAlignment()));
+ Align(1ULL << Subtarget->getPrefBranchLogAlignment()));
setPrefFunctionAlignment(
- Align(1ULL << Subtarget->getPrefBranchInstLogAlignment()));
+ Align(1ULL << Subtarget->getPrefBranchLogAlignment()));
setMinFunctionAlignment(Subtarget->isThumb() ? Align(2) : Align(4));
}
diff --git a/llvm/lib/Target/ARM/ARMProcessors.td b/llvm/lib/Target/ARM/ARMProcessors.td
index 0f803af81eead3..4c2c222c1c9b66 100644
--- a/llvm/lib/Target/ARM/ARMProcessors.td
+++ b/llvm/lib/Target/ARM/ARMProcessors.td
@@ -324,7 +324,7 @@ def : ProcessorModel<"cortex-r8", CortexA8Model, [ARMv7r,
def : ProcessorModel<"cortex-m3", CortexM4Model, [ARMv7m,
ProcM3,
- FeaturePrefBranchInstAlign32,
+ FeaturePrefBranchAlign32,
FeatureUseMISched,
FeatureHasNoBranchPredictor]>;
@@ -335,7 +335,7 @@ def : ProcessorModel<"sc300", CortexM4Model, [ARMv7m,
def : ProcessorModel<"cortex-m4", CortexM4Model, [ARMv7em,
FeatureVFP4_D16_SP,
- FeaturePrefBranchInstAlign32,
+ FeaturePrefBranchAlign32,
FeatureHasSlowFPVMLx,
FeatureHasSlowFPVFMx,
FeatureUseMISched,
@@ -344,7 +344,7 @@ def : ProcessorModel<"cortex-m4", CortexM4Model, [ARMv7em,
def : ProcessorModel<"cortex-m7", CortexM7Model, [ARMv7em,
ProcM7,
FeatureFPARMv8_D16,
- FeaturePrefBranchInstAlign64,
+ FeaturePrefBranchAlign64,
FeatureUseMIPipeliner,
FeatureUseMISched]>;
@@ -355,7 +355,7 @@ def : ProcNoItin<"cortex-m23", [ARMv8mBaseline,
def : ProcessorModel<"cortex-m33", CortexM4Model, [ARMv8mMainline,
FeatureDSP,
FeatureFPARMv8_D16_SP,
- FeaturePrefBranchInstAlign32,
+ FeaturePrefBranchAlign32,
FeatureHasSlowFPVMLx,
FeatureHasSlowFPVFMx,
FeatureUseMISched,
@@ -365,7 +365,7 @@ def : ProcessorModel<"cortex-m33", CortexM4Model, [ARMv8mMainline,
def : ProcessorModel<"cortex-m35p", CortexM4Model, [ARMv8mMainline,
FeatureDSP,
FeatureFPARMv8_D16_SP,
- FeaturePrefBranchInstAlign32,
+ FeaturePrefBranchAlign32,
FeatureHasSlowFPVMLx,
FeatureHasSlowFPVFMx,
FeatureUseMISched,
@@ -377,7 +377,7 @@ def : ProcessorModel<"cortex-m55", CortexM55Model, [ARMv81mMainline,
FeatureFPARMv8_D16,
FeatureUseMISched,
FeatureHasNoBranchPredictor,
- FeaturePrefBranchInstAlign32,
+ FeaturePrefBranchAlign32,
FeatureHasSlowFPVMLx,
HasMVEFloatOps,
FeatureFixCMSE_CVE_2021_35465]>;
@@ -386,7 +386,7 @@ def : ProcessorModel<"cortex-m85", CortexM85Model, [ARMv81mMainline,
FeatureDSP,
FeatureFPARMv8_D16,
FeaturePACBTI,
- FeaturePrefBranchInstAlign64,
+ FeaturePrefBranchAlign64,
FeatureUseMISched,
HasMVEFloatOps]>;
@@ -396,7 +396,7 @@ def : ProcessorModel<"cortex-m52", CortexM55Model, [ARMv81mMainline,
FeatureHasNoBranchPredictor,
FeaturePACBTI,
FeatureUseMISched,
- FeaturePrefBranchInstAlign32,
+ FeaturePrefBranchAlign32,
FeatureHasSlowFPVMLx,
FeatureMVEVectorCostFactor1,
HasMVEFloatOps]>;
diff --git a/llvm/lib/Target/ARM/ARMSubtarget.cpp b/llvm/lib/Target/ARM/ARMSubtarget.cpp
index fcd77bbf293726..73eebbbba4caec 100644
--- a/llvm/lib/Target/ARM/ARMSubtarget.cpp
+++ b/llvm/lib/Target/ARM/ARMSubtarget.cpp
@@ -302,7 +302,7 @@ void ARMSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
LdStMultipleTiming = SingleIssuePlusExtras;
MaxInterleaveFactor = 4;
if (!isThumb())
- PrefBranchInstLogAlignment = 3;
+ PrefBranchLogAlignment = 3;
break;
case Kryo:
break;
diff --git a/llvm/lib/Target/ARM/ARMSubtarget.h b/llvm/lib/Target/ARM/ARMSubtarget.h
index 02c5ced6d30475..6e0e7e9809df80 100644
--- a/llvm/lib/Target/ARM/ARMSubtarget.h
+++ b/llvm/lib/Target/ARM/ARMSubtarget.h
@@ -133,7 +133,7 @@ class ARMSubtarget : public ARMGenSubtargetInfo {
int PreISelOperandLatencyAdjustment = 2;
/// What alignment is preferred for loop bodies and functions, in log2(bytes).
- unsigned PrefBranchInstLogAlignment = 0;
+ unsigned PrefBranchLogAlignment = 0;
/// The cost factor for MVE instructions, representing the multiple beats an
// instruction can take. The default is 2, (set in initSubtargetFeatures so
@@ -476,8 +476,8 @@ class ARMSubtarget : public ARMGenSubtargetInfo {
return isROPI() || !isTargetELF();
}
- unsigned getPrefBranchInstLogAlignment() const {
- return PrefBranchInstLogAlignment;
+ unsigned getPrefBranchLogAlignment() const {
+ return PrefBranchLogAlignment;
}
unsigned
More information about the llvm-commits
mailing list