[PATCH] Change more of the guts of CodeGenRegister's RegUnit tracking to be based on bit vectors.

Chandler Carruth chandlerc at gmail.com
Fri Jan 30 21:40:04 PST 2015


Generally looks fine. Feel free to submit whenever. Minor comments and a question below.


REPOSITORY
  rL LLVM

================
Comment at: utils/TableGen/CodeGenRegisters.cpp:202
@@ -213,8 +201,3 @@
 bool CodeGenRegister::inheritRegUnits(CodeGenRegBank &RegBank) {
-  unsigned OldNumUnits = RegUnits.size();
-
-  SparseBitVector<> NewUnits;
-  for (unsigned RU : RegUnits)
-    NewUnits.set(RU);
-
+  bool changed = false;
   for (SubRegMap::const_iterator I = SubRegs.begin(), E = SubRegs.end();
----------------
s/changed/Changed

================
Comment at: utils/TableGen/CodeGenRegisters.cpp:522
@@ -550,3 +521,3 @@
   unsigned Weight = 0;
-  for (RegUnitList::const_iterator I = RegUnits.begin(), E = RegUnits.end();
+  for (RegUnitList::iterator I = RegUnits.begin(), E = RegUnits.end();
        I != E; ++I) {
----------------
range based loop?

================
Comment at: utils/TableGen/RegisterInfoEmitter.cpp:576
@@ -575,3 +575,3 @@
 static
-DiffVec &diffEncode(DiffVec &V, unsigned InitVal, ArrayRef<unsigned> List) {
+DiffVec &diffEncode(DiffVec &V, unsigned InitVal, SparseBitVector<> List) {
   assert(V.empty() && "Clear DiffVec before diffEncode.");
----------------
Why pass by value here? Should this be a const reference?

http://reviews.llvm.org/D7301

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list