From: Chris Lattner Date: Fri, 6 Apr 2007 18:36:18 +0000 (+0000) Subject: Switch some vectors to smallvectors. This reduces amount of malloc'd X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3b6078f584d856b3b0fb4dc3c4255502e605be1e;p=oota-llvm.git 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35698 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/CommandLine.h b/include/llvm/Support/CommandLine.h index 69a3d6c5921..4758ff5b399 100644 --- a/include/llvm/Support/CommandLine.h +++ b/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 #include #include @@ -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 > > Values; + SmallVector >,4> Values; void processValues(va_list Vals); public: ValuesClass(const char *EnumName, DataType Val, const char *Desc, @@ -424,8 +425,8 @@ protected: template class parser : public generic_parser_base { protected: - std::vector > > Values; + SmallVector >, 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 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(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!");