[llvm] 2086801 - [LoongArch] Reuse LoongArchRegWithSubRegs class to shorten some code in LoongArchRegisterInfo.td. NFC

via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 29 20:09:11 PDT 2023


Author: wanglei
Date: 2023-06-30T11:07:28+08:00
New Revision: 2086801a9aacfa106644779f9ac550644891387c

URL: https://github.com/llvm/llvm-project/commit/2086801a9aacfa106644779f9ac550644891387c
DIFF: https://github.com/llvm/llvm-project/commit/2086801a9aacfa106644779f9ac550644891387c.diff

LOG: [LoongArch] Reuse LoongArchRegWithSubRegs class to shorten some code in LoongArchRegisterInfo.td. NFC

Added: 
    

Modified: 
    llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td b/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td
index ff914f805e5b2f..b34e03367cba8e 100644
--- a/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td
+++ b/llvm/lib/Target/LoongArch/LoongArchRegisterInfo.td
@@ -17,6 +17,13 @@ class LoongArchReg<bits<16> Enc, string n, list<string> alt = []>
   let AltNames = alt;
 }
 
+class LoongArchRegWithSubRegs<bits<16> Enc, string n, list<Register> subregs,
+                              list<string> alt = []>
+    : RegisterWithSubRegs<n, subregs> {
+  let HWEncoding = Enc;
+  let AltNames = alt;
+}
+
 class LoongArchReg32<bits<16> Enc, string n, list<string> alt = []>
     : Register<n> {
   let HWEncoding = Enc;
@@ -25,12 +32,9 @@ class LoongArchReg32<bits<16> Enc, string n, list<string> alt = []>
 
 def sub_32 : SubRegIndex<32>;
 class LoongArchReg64<LoongArchReg32 subreg>
-    : Register<""> {
-  let HWEncoding = subreg.HWEncoding;
-  let SubRegs = [subreg];
+    : LoongArchRegWithSubRegs<subreg.HWEncoding, subreg.AsmName, [subreg],
+                              subreg.AltNames> {
   let SubRegIndices = [sub_32];
-  let AsmName = subreg.AsmName;
-  let AltNames = subreg.AltNames;
 }
 
 let FallbackRegAltNameIndex = NoRegAltName in


        


More information about the llvm-commits mailing list