From a7a3f04eb9a18c11940ab1486709c63c8bd296ff Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Tue, 7 Feb 2012 01:27:51 +0000 Subject: Reserve space in these vectors to prevent having to grow the array too much. This gets us an addition 0.9% on 445.gobmk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149952 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/Type.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/VMCore/Type.cpp') diff --git a/lib/VMCore/Type.cpp b/lib/VMCore/Type.cpp index f5c88ccd38..14a5aae70f 100644 --- a/lib/VMCore/Type.cpp +++ b/lib/VMCore/Type.cpp @@ -440,11 +440,12 @@ bool FunctionType::isValidArgumentType(Type *ArgTy) { StructType *StructType::get(LLVMContext &Context, ArrayRef ETypes, bool isPacked) { // FIXME: std::vector is horribly inefficient for this probe. - std::vector Key; - for (unsigned i = 0, e = ETypes.size(); i != e; ++i) { + unsigned ETypesSize = ETypes.size(); + std::vector Key(ETypesSize); + for (unsigned i = 0, e = ETypesSize; i != e; ++i) { assert(isValidElementType(ETypes[i]) && "Invalid type for structure element!"); - Key.push_back(ETypes[i]); + Key[i] = ETypes[i]; } if (isPacked) Key.push_back(0); -- cgit v1.2.3