[llvm] [X86][NFC] Reorder the registers to reduce unnecessary iterations (PR #70222)

Phoebe Wang via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 25 19:18:20 PDT 2023


================
@@ -1175,24 +1175,21 @@ CodeGenRegBank::CodeGenRegBank(RecordKeeper &Records,
   for (auto &Idx : SubRegIndices)
     Idx.updateComponents(*this);
 
-  // Read in the register definitions.
+  // Read in the register and register tuple definitions.
   std::vector<Record*> Regs = Records.getAllDerivedDefinitions("Register");
-  llvm::sort(Regs, LessRecordRegister());
-  // Assign the enumeration values.
-  for (unsigned i = 0, e = Regs.size(); i != e; ++i)
-    getReg(Regs[i]);
-
-  // Expand tuples and number the new registers.
   std::vector<Record*> Tups =
     Records.getAllDerivedDefinitions("RegisterTuples");
-
   for (Record *R : Tups) {
+    // Expand tuples and merge the vectors
     std::vector<Record *> TupRegs = *Sets.expand(R);
-    llvm::sort(TupRegs, LessRecordRegister());
-    for (Record *RC : TupRegs)
-      getReg(RC);
+    Regs.insert(Regs.end(), TupRegs.begin(), TupRegs.end());
   }
 
+  llvm::sort(Regs, LessRecordRegister());
+  // Assign the enumeration values.
+  for (unsigned i = 0, e = Regs.size(); i != e; ++i)
+    getReg(Regs[i]);
+
----------------
phoebewang wrote:

Why switch the order? This doesn't seem related to your change.

https://github.com/llvm/llvm-project/pull/70222


More information about the llvm-commits mailing list