From 565aafc997ee08803e2a6f7544f183b9e796ba94 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Fri, 6 Aug 2010 23:03:52 +0000 Subject: [PATCH] Some cleanup. Use a class (OptionInfo) instead of a pair of a pair and remove 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 | 3 +-- include/llvm/Support/CommandLine.h | 23 +++++++++++++++-------- include/llvm/Support/PassNameParser.h | 5 ++--- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/include/llvm/PassSupport.h b/include/llvm/PassSupport.h index ee987131726..0ca955ba6b8 100644 --- a/include/llvm/PassSupport.h +++ b/include/llvm/PassSupport.h @@ -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) { diff --git a/include/llvm/Support/CommandLine.h b/include/llvm/Support/CommandLine.h index 61c3256d384..35ec9c73aeb 100644 --- a/include/llvm/Support/CommandLine.h +++ b/include/llvm/Support/CommandLine.h @@ -443,16 +443,23 @@ protected: template class parser : public generic_parser_base { protected: - SmallVector >, 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 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(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 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(V),HelpStr))); + OptionInfo X(Name, static_cast(V), HelpStr); + Values.push_back(X); MarkOptionsChanged(); } diff --git a/include/llvm/Support/PassNameParser.h b/include/llvm/Support/PassNameParser.h index cdca978cfef..b6d277581e6 100644 --- a/include/llvm/Support/PassNameParser.h +++ b/include/llvm/Support/PassNameParser.h @@ -78,10 +78,9 @@ public: virtual void passEnumerate(const PassInfo *P) { passRegistered(P); } // ValLessThan - Provide a sorting comparator for Values elements... - typedef std::pair > 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 -- 2.34.1