[llvm] r298875 - [TableGen] Print #nnn as a name of an non-native reg unit with id nnn
Krzysztof Parzyszek via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 27 12:08:24 PDT 2017
Author: kparzysz
Date: Mon Mar 27 14:08:24 2017
New Revision: 298875
URL: http://llvm.org/viewvc/llvm-project?rev=298875&view=rev
Log:
[TableGen] Print #nnn as a name of an non-native reg unit with id nnn
When using -debug with -gen-register-info, tablegen will crash when
trying to print a name of a non-native register unit. This patch only
affects the debug information generated while running llvm-tblgen,
and has no impact on the compilable code coming out of it.
Modified:
llvm/trunk/utils/TableGen/CodeGenRegisters.cpp
llvm/trunk/utils/TableGen/CodeGenRegisters.h
Modified: llvm/trunk/utils/TableGen/CodeGenRegisters.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/CodeGenRegisters.cpp?rev=298875&r1=298874&r2=298875&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/CodeGenRegisters.cpp (original)
+++ llvm/trunk/utils/TableGen/CodeGenRegisters.cpp Mon Mar 27 14:08:24 2017
@@ -1668,7 +1668,7 @@ void CodeGenRegBank::computeRegUnitSets(
dbgs() << "UnitSet " << USIdx << " " << RegUnitSets[USIdx].Name
<< ":";
for (auto &U : RegUnitSets[USIdx].Units)
- dbgs() << " " << RegUnits[U].Roots[0]->getName();
+ printRegUnitName(U);
dbgs() << "\n";
});
@@ -1681,7 +1681,7 @@ void CodeGenRegBank::computeRegUnitSets(
dbgs() << "UnitSet " << USIdx << " " << RegUnitSets[USIdx].Name
<< ":";
for (auto &U : RegUnitSets[USIdx].Units)
- dbgs() << " " << RegUnits[U].Roots[0]->getName();
+ printRegUnitName(U);
dbgs() << "\n";
}
dbgs() << "\nUnion sets:\n");
@@ -1727,7 +1727,7 @@ void CodeGenRegBank::computeRegUnitSets(
DEBUG(dbgs() << "UnitSet " << RegUnitSets.size()-1
<< " " << RegUnitSets.back().Name << ":";
for (auto &U : RegUnitSets.back().Units)
- dbgs() << " " << RegUnits[U].Roots[0]->getName();
+ printRegUnitName(U);
dbgs() << "\n";);
}
}
@@ -1742,7 +1742,7 @@ void CodeGenRegBank::computeRegUnitSets(
dbgs() << "UnitSet " << USIdx << " " << RegUnitSets[USIdx].Name
<< ":";
for (auto &U : RegUnitSets[USIdx].Units)
- dbgs() << " " << RegUnits[U].Roots[0]->getName();
+ printRegUnitName(U);
dbgs() << "\n";
});
@@ -1763,8 +1763,8 @@ void CodeGenRegBank::computeRegUnitSets(
continue;
DEBUG(dbgs() << "RC " << RC.getName() << " Units: \n";
- for (auto &U : RCRegUnits)
- dbgs() << RegUnits[U].getRoots()[0]->getName() << " ";
+ for (auto U : RCRegUnits)
+ printRegUnitName(U);
dbgs() << "\n UnitSetIDs:");
// Find all supersets.
@@ -2170,3 +2170,10 @@ BitVector CodeGenRegBank::computeCovered
BV.set(Set[i]->EnumValue);
return BV;
}
+
+void CodeGenRegBank::printRegUnitName(unsigned Unit) const {
+ if (Unit < NumNativeRegUnits)
+ dbgs() << ' ' << RegUnits[Unit].Roots[0]->getName();
+ else
+ dbgs() << " #" << Unit;
+}
Modified: llvm/trunk/utils/TableGen/CodeGenRegisters.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/CodeGenRegisters.h?rev=298875&r1=298874&r2=298875&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/CodeGenRegisters.h (original)
+++ llvm/trunk/utils/TableGen/CodeGenRegisters.h Mon Mar 27 14:08:24 2017
@@ -735,6 +735,10 @@ namespace llvm {
// LaneMask is contained in CoveringLanes will be completely covered by
// another sub-register with the same or larger lane mask.
LaneBitmask CoveringLanes;
+
+ // Helper function for printing debug information. Handles artificial
+ // (non-native) reg units.
+ void printRegUnitName(unsigned Unit) const;
};
} // end namespace llvm
More information about the llvm-commits
mailing list