Remove NumberHack entirely.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 25 May 2010 19:49:33 +0000 (19:49 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 25 May 2010 19:49:33 +0000 (19:49 +0000)
SubRegIndex instances are now numbered uniquely the same way Register instances
are - in lexicographical order by name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104627 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/Target.td
lib/Target/ARM/ARMRegisterInfo.td
lib/Target/Blackfin/BlackfinRegisterInfo.td
lib/Target/MSP430/MSP430RegisterInfo.td
lib/Target/Mips/MipsRegisterInfo.td
lib/Target/PowerPC/PPCRegisterInfo.td
lib/Target/SystemZ/SystemZRegisterInfo.td
lib/Target/X86/X86RegisterInfo.td

index 5fd69cf2e6d615460a4370c9896cf7229440bbcd..9e0ad6f9e5e96e383dd920741b1e3e2e93f051cd 100644 (file)
@@ -21,13 +21,9 @@ include "llvm/Intrinsics.td"
 
 class RegisterClass; // Forward def
 
-// SubRegIndex - Use instances on SubRegIndex to identify subregisters.
+// SubRegIndex - Use instances of SubRegIndex to identify subregisters.
 class SubRegIndex {
   string Namespace = "";
-
-  // This explicit numbering is going away after RegisterClass::SubRegClassList
-  // is replaced.
-  int NumberHack;
 }
 
 // Register - You should define one instance of this class for each register
index a71cf7235c52da3b346b4e2526eb7389a29a04f8..982401a795a198341d9581b498c82c79294fa9af 100644 (file)
@@ -26,27 +26,27 @@ class ARMFReg<bits<6> num, string n> : Register<n> {
 // Subregister indices.
 let Namespace = "ARM" in {
 // Note: Code depends on these having consecutive numbers.
-def ssub_0 : SubRegIndex { let NumberHack = 1; }
-def ssub_1 : SubRegIndex { let NumberHack = 2; }
-def ssub_2 : SubRegIndex { let NumberHack = 3; }
-def ssub_3 : SubRegIndex { let NumberHack = 4; }
-
-def dsub_0 : SubRegIndex { let NumberHack = 5; }
-def dsub_1 : SubRegIndex { let NumberHack = 6; }
-def dsub_2 : SubRegIndex { let NumberHack = 7; }
-def dsub_3 : SubRegIndex { let NumberHack = 8; }
-def dsub_4 : SubRegIndex { let NumberHack = 9; }
-def dsub_5 : SubRegIndex { let NumberHack = 10; }
-def dsub_6 : SubRegIndex { let NumberHack = 11; }
-def dsub_7 : SubRegIndex { let NumberHack = 12; }
-
-def qsub_0 : SubRegIndex { let NumberHack = 13; }
-def qsub_1 : SubRegIndex { let NumberHack = 14; }
-def qsub_2 : SubRegIndex { let NumberHack = 15; }
-def qsub_3 : SubRegIndex { let NumberHack = 16; }
-
-def qqsub_0 : SubRegIndex { let NumberHack = 17; }
-def qqsub_1 : SubRegIndex { let NumberHack = 18; }
+def ssub_0 : SubRegIndex;
+def ssub_1 : SubRegIndex;
+def ssub_2 : SubRegIndex;
+def ssub_3 : SubRegIndex;
+
+def dsub_0 : SubRegIndex;
+def dsub_1 : SubRegIndex;
+def dsub_2 : SubRegIndex;
+def dsub_3 : SubRegIndex;
+def dsub_4 : SubRegIndex;
+def dsub_5 : SubRegIndex;
+def dsub_6 : SubRegIndex;
+def dsub_7 : SubRegIndex;
+
+def qsub_0 : SubRegIndex;
+def qsub_1 : SubRegIndex;
+def qsub_2 : SubRegIndex;
+def qsub_3 : SubRegIndex;
+
+def qqsub_0 : SubRegIndex;
+def qqsub_1 : SubRegIndex;
 }
 
 // Integer registers
index d47f6b13fd4d2327da14feba3e105f518467e39a..8379ce74a27738fafd6fcc99e99343a059e17dce 100644 (file)
@@ -16,9 +16,9 @@
 // 2: .H
 // 3: .W (32 low bits of 40-bit accu)
 let Namespace = "BF" in {
-def lo16 : SubRegIndex { let NumberHack = 1; }
-def hi16 : SubRegIndex { let NumberHack = 2; }
-def lo32 : SubRegIndex { let NumberHack = 3; }
+def lo16 : SubRegIndex;
+def hi16 : SubRegIndex;
+def lo32 : SubRegIndex;
 }
 
 // Registers are identified with 3-bit group and 3-bit ID numbers.
index 80db8b069af35d7c281a01af5069a8c780a005d2..f488f00913865ad87c921f0b2d87cddd6db36a56 100644 (file)
@@ -60,10 +60,7 @@ def R13W : MSP430RegWithSubregs<13, "r13", [R13B]>;
 def R14W : MSP430RegWithSubregs<14, "r14", [R14B]>;
 def R15W : MSP430RegWithSubregs<15, "r15", [R15B]>;
 
-def subreg_8bit : SubRegIndex {
-  let NumberHack = 1;
-  let Namespace = "MSP430";
-}
+def subreg_8bit : SubRegIndex { let Namespace = "MSP430"; }
 
 def : SubRegSet<subreg_8bit, [PCW, SPW, SRW, CGW, FPW, R5W, R6W, R7W,
                               R8W, R9W, R10W, R11W, R12W, R13W, R14W, R15W],
index b9c75a69125ba8ee85c6024b805ef32dc18f1afc..576110d77cc3ad187b258d6308e548a4a8e0f9a8 100644 (file)
@@ -145,8 +145,8 @@ let Namespace = "Mips" in {
 //===----------------------------------------------------------------------===//
 
 let Namespace = "Mips" in {
-def sub_fpeven : SubRegIndex { let NumberHack = 1; }
-def sub_fpodd  : SubRegIndex { let NumberHack = 2; }
+def sub_fpeven : SubRegIndex;
+def sub_fpodd  : SubRegIndex;
 }
 
 def : SubRegSet<sub_fpeven, [D0, D1, D2, D3, D4, D5, D6, D7,
index ca0e95f9c390188bf3c545853bbb18dcbe2af292..5aa6e02d66a93ec475c4dbe20e94343e7ffad3c6 100644 (file)
@@ -235,10 +235,10 @@ def CR6 : CR<6, "cr6", [CR6LT, CR6GT, CR6EQ, CR6UN]>, DwarfRegNum<[74]>;
 def CR7 : CR<7, "cr7", [CR7LT, CR7GT, CR7EQ, CR7UN]>, DwarfRegNum<[75]>;
 
 let Namespace = "PPC" in {
-def sub_lt : SubRegIndex { let NumberHack = 1; }
-def sub_gt : SubRegIndex { let NumberHack = 2; }
-def sub_eq : SubRegIndex { let NumberHack = 3; }
-def sub_un : SubRegIndex { let NumberHack = 4; }
+def sub_lt : SubRegIndex;
+def sub_gt : SubRegIndex;
+def sub_eq : SubRegIndex;
+def sub_un : SubRegIndex;
 }
 
 def : SubRegSet<sub_lt,
index 8288e727e6bf88c05e09b7ff08a41356f2de4208..9c175733ea7889d1ea479e4adacc82cffdc148af 100644 (file)
@@ -146,11 +146,11 @@ def F15L : FPRL<15, "f15", [F15S]>, DwarfRegNum<[31]>;
 def PSW : SystemZReg<"psw">;
 
 let Namespace = "SystemZ" in {
-def subreg_32bit  : SubRegIndex { let NumberHack = 1; }
-def subreg_even32 : SubRegIndex { let NumberHack = 1; }
-def subreg_odd32  : SubRegIndex { let NumberHack = 2; }
-def subreg_even   : SubRegIndex { let NumberHack = 3; }
-def subreg_odd    : SubRegIndex { let NumberHack = 4; }
+def subreg_32bit  : SubRegIndex;
+def subreg_even32 : SubRegIndex;
+def subreg_odd32  : SubRegIndex;
+def subreg_even   : SubRegIndex;
+def subreg_odd    : SubRegIndex;
 }
 
 def : SubRegSet<subreg_32bit, [R0D, R1D,  R2D,  R3D,  R4D,  R5D,  R6D,  R7D,
index 551260ffcf5eb517342fe1d6df0e3cdb73b637a9..7e1708661a921fc4e2187e311808d8bdcdcef114 100644 (file)
 let Namespace = "X86" in {
 
   // Subregister indices.
-  def sub_8bit    : SubRegIndex { let NumberHack = 1; }
-  def sub_8bit_hi : SubRegIndex { let NumberHack = 2; }
-  def sub_16bit   : SubRegIndex { let NumberHack = 3; }
-  def sub_32bit   : SubRegIndex { let NumberHack = 4; }
-
-  def sub_ss  : SubRegIndex { let NumberHack = 1; }
-  def sub_sd  : SubRegIndex { let NumberHack = 2; }
-  def sub_xmm : SubRegIndex { let NumberHack = 3; }
+  def sub_8bit    : SubRegIndex;
+  def sub_8bit_hi : SubRegIndex;
+  def sub_16bit   : SubRegIndex;
+  def sub_32bit   : SubRegIndex;
+
+  def sub_ss  : SubRegIndex;
+  def sub_sd  : SubRegIndex;
+  def sub_xmm : SubRegIndex;
 
 
   // In the register alias definitions below, we define which registers alias