]> granicus.if.org Git - llvm/commitdiff
Fix opt --help ordering of available optimizations.
authorErich Keane <erich.keane@intel.com>
Fri, 30 Jun 2017 18:44:33 +0000 (18:44 +0000)
committerErich Keane <erich.keane@intel.com>
Fri, 30 Jun 2017 18:44:33 +0000 (18:44 +0000)
Introduced in -r283004, the PassNameParser sorts Optimization options in
reverse. This is because the commit replaced a compare function with "<"
(which would seemingly be proper based on the name of the comparison function).
The result is the 'true' result is converted to '1', which is inverted.

This patch fixes this by replacing the '<' operator call on StringRef with a
call to the StringRef compare function. It also renames the function to better
reflect its meaning.

Differential Revision: https://reviews.llvm.org/D34831

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

include/llvm/IR/LegacyPassNameParser.h

index fd9d468b06cba50e3e4699ffc12a7903e8717538..4cec081964081a38c131b7abc15d0f7d12a5ee4a 100644 (file)
@@ -81,15 +81,15 @@ public:
   // default implementation to sort the table before we print...
   void printOptionInfo(const cl::Option &O, size_t GlobalWidth) const override {
     PassNameParser *PNP = const_cast<PassNameParser*>(this);
-    array_pod_sort(PNP->Values.begin(), PNP->Values.end(), ValLessThan);
+    array_pod_sort(PNP->Values.begin(), PNP->Values.end(), ValCompare);
     cl::parser<const PassInfo*>::printOptionInfo(O, GlobalWidth);
   }
 
 private:
-  // ValLessThan - Provide a sorting comparator for Values elements...
-  static int ValLessThan(const PassNameParser::OptionInfo *VT1,
-                         const PassNameParser::OptionInfo *VT2) {
-    return VT1->Name < VT2->Name;
+  // ValCompare - Provide a sorting comparator for Values elements...
+  static int ValCompare(const PassNameParser::OptionInfo *VT1,
+                        const PassNameParser::OptionInfo *VT2) {
+    return VT1->Name.compare(VT2->Name);
   }
 };