[llvm] 483d196 - [RISCV] Add tune features for Andes 45 series cpus (#143899)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 12 23:26:53 PDT 2025
Author: Jim Lin
Date: 2025-06-13T14:26:50+08:00
New Revision: 483d19619c3221c1d54080e57e43052eb863436a
URL: https://github.com/llvm/llvm-project/commit/483d19619c3221c1d54080e57e43052eb863436a
DIFF: https://github.com/llvm/llvm-project/commit/483d19619c3221c1d54080e57e43052eb863436a.diff
LOG: [RISCV] Add tune features for Andes 45 series cpus (#143899)
Add tune features TuneNoDefaultUnroll, TuneShortForwardBranchOpt and
TunePostRAScheduler for Andes 45 series cpus.
Added:
Modified:
llvm/lib/Target/RISCV/RISCVFeatures.td
llvm/lib/Target/RISCV/RISCVProcessors.td
llvm/lib/Target/RISCV/RISCVSubtarget.h
llvm/test/CodeGen/RISCV/features-info.ll
Removed:
################################################################################
diff --git a/llvm/lib/Target/RISCV/RISCVFeatures.td b/llvm/lib/Target/RISCV/RISCVFeatures.td
index 83eefc0858d4c..940caa4f40444 100644
--- a/llvm/lib/Target/RISCV/RISCVFeatures.td
+++ b/llvm/lib/Target/RISCV/RISCVFeatures.td
@@ -1742,6 +1742,9 @@ def TuneSiFive7 : SubtargetFeature<"sifive7", "RISCVProcFamily", "SiFive7",
def TuneVentanaVeyron : SubtargetFeature<"ventana-veyron", "RISCVProcFamily", "VentanaVeyron",
"Ventana Veyron-Series processors">;
+def TuneAndes45 : SubtargetFeature<"andes45", "RISCVProcFamily", "Andes45",
+ "Andes 45-Series processors">;
+
def TuneVXRMPipelineFlush : SubtargetFeature<"vxrm-pipeline-flush", "HasVXRMPipelineFlush",
"true", "VXRM writes causes pipeline flush">;
diff --git a/llvm/lib/Target/RISCV/RISCVProcessors.td b/llvm/lib/Target/RISCV/RISCVProcessors.td
index de6f0ecfce737..32f4ab607a34c 100644
--- a/llvm/lib/Target/RISCV/RISCVProcessors.td
+++ b/llvm/lib/Target/RISCV/RISCVProcessors.td
@@ -722,8 +722,13 @@ def ANDES_AX25 : RISCVProcessorModel<"andes-ax25",
FeatureStdExtZbc,
FeatureVendorXAndesPerf]>;
+defvar Andes45TuneFeatures = [TuneAndes45,
+ TuneNoDefaultUnroll,
+ TuneShortForwardBranchOpt,
+ TunePostRAScheduler];
+
def ANDES_45 : RISCVTuneProcessorModel<"andes-45-series",
- Andes45Model>;
+ Andes45Model, Andes45TuneFeatures>;
def ANDES_N45 : RISCVProcessorModel<"andes-n45",
Andes45Model,
@@ -737,7 +742,8 @@ def ANDES_N45 : RISCVProcessorModel<"andes-n45",
FeatureStdExtD,
FeatureStdExtC,
FeatureStdExtB,
- FeatureVendorXAndesPerf]>;
+ FeatureVendorXAndesPerf],
+ Andes45TuneFeatures>;
def ANDES_NX45 : RISCVProcessorModel<"andes-nx45",
Andes45Model,
@@ -751,7 +757,8 @@ def ANDES_NX45 : RISCVProcessorModel<"andes-nx45",
FeatureStdExtD,
FeatureStdExtC,
FeatureStdExtB,
- FeatureVendorXAndesPerf]>;
+ FeatureVendorXAndesPerf],
+ Andes45TuneFeatures>;
def ANDES_A45 : RISCVProcessorModel<"andes-a45",
Andes45Model,
@@ -765,7 +772,8 @@ def ANDES_A45 : RISCVProcessorModel<"andes-a45",
FeatureStdExtD,
FeatureStdExtC,
FeatureStdExtB,
- FeatureVendorXAndesPerf]>;
+ FeatureVendorXAndesPerf],
+ Andes45TuneFeatures>;
def ANDES_AX45 : RISCVProcessorModel<"andes-ax45",
Andes45Model,
@@ -779,4 +787,5 @@ def ANDES_AX45 : RISCVProcessorModel<"andes-ax45",
FeatureStdExtD,
FeatureStdExtC,
FeatureStdExtB,
- FeatureVendorXAndesPerf]>;
+ FeatureVendorXAndesPerf],
+ Andes45TuneFeatures>;
diff --git a/llvm/lib/Target/RISCV/RISCVSubtarget.h b/llvm/lib/Target/RISCV/RISCVSubtarget.h
index 0eef7b1feaf5b..04c7ca7d0572b 100644
--- a/llvm/lib/Target/RISCV/RISCVSubtarget.h
+++ b/llvm/lib/Target/RISCV/RISCVSubtarget.h
@@ -83,6 +83,7 @@ class RISCVSubtarget : public RISCVGenSubtargetInfo {
SiFive7,
VentanaVeyron,
MIPSP8700,
+ Andes45,
};
enum RISCVVRGatherCostModelEnum : uint8_t {
Quadratic,
diff --git a/llvm/test/CodeGen/RISCV/features-info.ll b/llvm/test/CodeGen/RISCV/features-info.ll
index b7b27cd579fb3..fab2e94959301 100644
--- a/llvm/test/CodeGen/RISCV/features-info.ll
+++ b/llvm/test/CodeGen/RISCV/features-info.ll
@@ -6,6 +6,7 @@
; CHECK-NEXT: 32bit - Implements RV32.
; CHECK-NEXT: 64bit - Implements RV64.
; CHECK-NEXT: a - 'A' (Atomic Instructions).
+; CHECK-NEXT: andes45 - Andes 45-Series processors.
; CHECK-NEXT: auipc-addi-fusion - Enable AUIPC+ADDI macrofusion.
; CHECK-NEXT: b - 'B' (the collection of the Zba, Zbb, Zbs extensions).
; CHECK-NEXT: c - 'C' (Compressed Instructions).
More information about the llvm-commits
mailing list