[llvm] [RISCV][TableGen] Generate RISCVTargetParser.inc from the new RISCVExtension tblgen information. (PR #89335)
Brandon Wu via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 20 02:59:42 PDT 2024
================
@@ -0,0 +1,96 @@
+// RUN: llvm-tblgen -gen-riscv-target-def -I %p/../../include %s | FileCheck %s
+
+include "llvm/Target/Target.td"
+
+class RISCVExtension<string name, int major, int minor, string fieldname,
+ string desc, list<SubtargetFeature> implies = [],
+ string value = "true">
+ : SubtargetFeature<name, fieldname, value, desc, implies> {
+ int MajorVersion = major;
+ int MinorVersion = minor;
+ bit Experimental = false;
+}
+
+def FeatureStdExtI
+ : RISCVExtension<"i", 2, 1, "HasStdExtI",
+ "'I' (Base Integer Instruction Set)">;
+
+def FeatureStdExtZicsr
+ : RISCVExtension<"zicsr", 2, 0, "HasStdExtZicsr",
+ "'zicsr' (CSRs)">;
+
+def FeatureStdExtZifencei
+ : RISCVExtension<"zifencei", 2, 0, "HasStdExtZifencei",
+ "'Zifencei' (fence.i)">;
+
+def Feature32Bit
+ : SubtargetFeature<"32bit", "IsRV32", "true", "Implements RV32">;
+def Feature64Bit
+ : SubtargetFeature<"64bit", "IsRV64", "true", "Implements RV64">;
+
+// Dummy feature that isn't an extension.
+def FeatureDummy
+ : SubtargetFeature<"dummy", "Dummy", "true", "Dummy">;
+
+class RISCVProcessorModel<string n,
+ SchedMachineModel m,
+ list<SubtargetFeature> f,
+ list<SubtargetFeature> tunef = [],
+ string default_march = "">
+ : ProcessorModel<n, m, f, tunef> {
+ string DefaultMarch = default_march;
+}
+
+class RISCVTuneProcessorModel<string n,
+ SchedMachineModel m,
+ list<SubtargetFeature> tunef = [],
+ list<SubtargetFeature> f = []>
+ : ProcessorModel<n, m, f,tunef>;
----------------
4vtomat wrote:
I guess the indention here needs to be 2 instead of 4?
https://github.com/llvm/llvm-project/pull/89335
More information about the llvm-commits
mailing list