Add StringRef::compare_numeric and use it to sort TableGen register records.
[oota-llvm.git] / utils / TableGen / CodeGenTarget.cpp
index 5d4548923013cc750dcf9380190508818aab1845..3797992d9d3f2ac73421bf013a1604eb07777d8b 100644 (file)
@@ -159,6 +159,7 @@ void CodeGenTarget::ReadRegisters() const {
   std::vector<Record*> Regs = Records.getAllDerivedDefinitions("Register");
   if (Regs.empty())
     throw std::string("No 'Register' subclasses defined!");
+  std::sort(Regs.begin(), Regs.end(), LessRecord());
 
   Registers.reserve(Regs.size());
   Registers.assign(Regs.begin(), Regs.end());
@@ -175,6 +176,7 @@ const std::string &CodeGenRegister::getName() const {
 
 void CodeGenTarget::ReadSubRegIndices() const {
   SubRegIndices = Records.getAllDerivedDefinitions("SubRegIndex");
+  std::sort(SubRegIndices.begin(), SubRegIndices.end(), LessRecord());
 }
 
 void CodeGenTarget::ReadRegisterClasses() const {