diff options
author | Chris Lattner <sabre@nondot.org> | 2007-04-06 18:36:18 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-04-06 18:36:18 +0000 |
commit | d31e5155be6a3b8b459ff97e2a6ab24bda48fcbb (patch) | |
tree | 7050680570b2cbc954b40e3a7748622724035ae3 /llvm/include/llvm/Support/CommandLine.h | |
parent | 7bbcd122dbd96db976587df2797e71572934619a (diff) | |
download | bcm5719-llvm-d31e5155be6a3b8b459ff97e2a6ab24bda48fcbb.tar.gz bcm5719-llvm-d31e5155be6a3b8b459ff97e2a6ab24bda48fcbb.zip |
Switch some vectors to smallvectors. This reduces amount of malloc'd
memory that occurs before main starts from 5104 to 4864 bytes with a dummy
example app.
llvm-svn: 35698
Diffstat (limited to 'llvm/include/llvm/Support/CommandLine.h')
-rw-r--r-- | llvm/include/llvm/Support/CommandLine.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/llvm/include/llvm/Support/CommandLine.h b/llvm/include/llvm/Support/CommandLine.h index 69a3d6c5921..4758ff5b399 100644 --- a/llvm/include/llvm/Support/CommandLine.h +++ b/llvm/include/llvm/Support/CommandLine.h @@ -23,6 +23,7 @@ #include "llvm/Support/type_traits.h" #include "llvm/Support/DataTypes.h" #include "llvm/Support/Compiler.h" +#include "llvm/ADT/SmallVector.h" #include <string> #include <vector> #include <utility> @@ -303,7 +304,7 @@ class ValuesClass { // Use a vector instead of a map, because the lists should be short, // the overhead is less, and most importantly, it keeps them in the order // inserted so we can print our option out nicely. - std::vector<std::pair<const char *, std::pair<int, const char *> > > Values; + SmallVector<std::pair<const char *, std::pair<int, const char *> >,4> Values; void processValues(va_list Vals); public: ValuesClass(const char *EnumName, DataType Val, const char *Desc, @@ -424,8 +425,8 @@ protected: template <class DataType> class parser : public generic_parser_base { protected: - std::vector<std::pair<const char *, - std::pair<DataType, const char *> > > Values; + SmallVector<std::pair<const char *, + std::pair<DataType, const char *> >, 8> Values; public: typedef DataType parser_data_type; @@ -454,7 +455,8 @@ public: return O.error(": Cannot find option named '" + ArgVal + "'!"); } - // addLiteralOption - Add an entry to the mapping table... + /// addLiteralOption - Add an entry to the mapping table. + /// template <class DT> void addLiteralOption(const char *Name, const DT &V, const char *HelpStr) { assert(findOption(Name) == Values.size() && "Option already exists!"); @@ -462,8 +464,8 @@ public: std::make_pair(static_cast<DataType>(V),HelpStr))); } - // removeLiteralOption - Remove the specified option. - // + /// removeLiteralOption - Remove the specified option. + /// void removeLiteralOption(const char *Name) { unsigned N = findOption(Name); assert(N != Values.size() && "Option not found!"); |