Some cleanup. Use a class (OptionInfo) instead of a pair of a pair and remove
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 6 Aug 2010 23:03:52 +0000 (23:03 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 6 Aug 2010 23:03:52 +0000 (23:03 +0000)
some default values that are not used.

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

include/llvm/PassSupport.h
include/llvm/Support/CommandLine.h
include/llvm/Support/PassNameParser.h

index ee987131726af7b20ce7eab5a96016f3b1803227..0ca955ba6b844a4f732aac9f8a2abc584f3ae70a 100644 (file)
@@ -53,8 +53,7 @@ public:
   /// PassInfo ctor - Do not call this directly, this should only be invoked
   /// through RegisterPass.
   PassInfo(const char *name, const char *arg, const void *pi,
-           NormalCtor_t normal = 0,
-           bool isCFGOnly = false, bool is_analysis = false)
+           NormalCtor_t normal, bool isCFGOnly, bool is_analysis)
     : PassName(name), PassArgument(arg), PassID(pi), 
       IsCFGOnlyPass(isCFGOnly), 
       IsAnalysis(is_analysis), IsAnalysisGroup(false), NormalCtor(normal) {
index 61c3256d384548b0495a61495e32cb344f99e82c..35ec9c73aeb5898e969ce32c7e44dce170b79e43 100644 (file)
@@ -443,16 +443,23 @@ protected:
 template <class DataType>
 class parser : public generic_parser_base {
 protected:
-  SmallVector<std::pair<const char *,
-                        std::pair<DataType, const char *> >, 8> Values;
+  class OptionInfo {
+  public:
+    OptionInfo(const char *name, DataType v, const char *helpStr) :
+      Name(name), V(v), HelpStr(helpStr) {}
+    const char *Name;
+    DataType V;
+    const char *HelpStr;
+  };
+  SmallVector<OptionInfo, 8> Values;
 public:
   typedef DataType parser_data_type;
 
   // Implement virtual functions needed by generic_parser_base
   unsigned getNumOptions() const { return unsigned(Values.size()); }
-  const char *getOption(unsigned N) const { return Values[N].first; }
+  const char *getOption(unsigned N) const { return Values[N].Name; }
   const char *getDescription(unsigned N) const {
-    return Values[N].second.second;
+    return Values[N].HelpStr;
   }
 
   // parse - Return true on error.
@@ -465,8 +472,8 @@ public:
 
     for (unsigned i = 0, e = static_cast<unsigned>(Values.size());
          i != e; ++i)
-      if (Values[i].first == ArgVal) {
-        V = Values[i].second.first;
+      if (Values[i].Name == ArgVal) {
+        V = Values[i].V;
         return false;
       }
 
@@ -478,8 +485,8 @@ public:
   template <class DT>
   void addLiteralOption(const char *Name, const DT &V, const char *HelpStr) {
     assert(findOption(Name) == Values.size() && "Option already exists!");
-    Values.push_back(std::make_pair(Name,
-                             std::make_pair(static_cast<DataType>(V),HelpStr)));
+    OptionInfo X(Name, static_cast<DataType>(V), HelpStr);
+    Values.push_back(X);
     MarkOptionsChanged();
   }
 
index cdca978cfef64cc642f0ca201824acfa5dc2d57a..b6d277581e65521a7f1fc7a31a5dd77d690abdc1 100644 (file)
@@ -78,10 +78,9 @@ public:
   virtual void passEnumerate(const PassInfo *P) { passRegistered(P); }
 
   // ValLessThan - Provide a sorting comparator for Values elements...
-  typedef std::pair<const char*,
-                    std::pair<const PassInfo*, const char*> > ValType;
+  typedef PassNameParser::OptionInfo  ValType;
   static bool ValLessThan(const ValType &VT1, const ValType &VT2) {
-    return std::string(VT1.first) < std::string(VT2.first);
+    return std::string(VT1.Name) < std::string(VT2.Name);
   }
 
   // printOptionInfo - Print out information about this option.  Override the