diff options
author | Bill Wendling <isanbard@gmail.com> | 2012-02-07 00:04:27 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2012-02-07 00:04:27 +0000 |
commit | 1e375fa2195260bb9c489fde6141cc095e5061d3 (patch) | |
tree | 44d7174b6e95d917b6200b30298b07eb860714aa /clang/lib/CodeGen/CGExprConstant.cpp | |
parent | 685b20c11493430d113952cffe84895b8a1bbd5a (diff) | |
download | bcm5719-llvm-1e375fa2195260bb9c489fde6141cc095e5061d3.tar.gz bcm5719-llvm-1e375fa2195260bb9c489fde6141cc095e5061d3.zip |
Use a SmallVector instead of std::vector. This improves compilation time in
445.gobmk by ~1.7%.
llvm-svn: 149935
Diffstat (limited to 'clang/lib/CodeGen/CGExprConstant.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGExprConstant.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/CodeGen/CGExprConstant.cpp b/clang/lib/CodeGen/CGExprConstant.cpp index f0b20c319a9..ee0d9a4a81f 100644 --- a/clang/lib/CodeGen/CGExprConstant.cpp +++ b/clang/lib/CodeGen/CGExprConstant.cpp @@ -40,7 +40,7 @@ class ConstStructBuilder { bool Packed; CharUnits NextFieldOffsetInChars; CharUnits LLVMStructAlignment; - std::vector<llvm::Constant *> Elements; + SmallVector<llvm::Constant *, 16> Elements; public: static llvm::Constant *BuildStruct(CodeGenModule &CGM, CodeGenFunction *CGF, InitListExpr *ILE); @@ -301,7 +301,7 @@ void ConstStructBuilder::AppendTailPadding(CharUnits RecordSize) { } void ConstStructBuilder::ConvertStructToPacked() { - std::vector<llvm::Constant *> PackedElements; + SmallVector<llvm::Constant *, 16> PackedElements; CharUnits ElementOffsetInChars = CharUnits::Zero(); for (unsigned i = 0, e = Elements.size(); i != e; ++i) { @@ -333,7 +333,7 @@ void ConstStructBuilder::ConvertStructToPacked() { assert(ElementOffsetInChars == NextFieldOffsetInChars && "Packing the struct changed its size!"); - Elements = PackedElements; + Elements.swap(PackedElements); LLVMStructAlignment = CharUnits::One(); Packed = true; } @@ -1172,7 +1172,7 @@ CodeGenModule::getMemberPointerConstant(const UnaryOperator *uo) { static void FillInNullDataMemberPointers(CodeGenModule &CGM, QualType T, - std::vector<llvm::Constant *> &Elements, + SmallVectorImpl<llvm::Constant *> &Elements, uint64_t StartOffset) { assert(StartOffset % CGM.getContext().getCharWidth() == 0 && "StartOffset not byte aligned!"); @@ -1353,7 +1353,7 @@ static llvm::Constant *EmitNullConstantForBase(CodeGenModule &CGM, unsigned numBaseElements = baseArrayType->getNumElements(); // Fill in null data member pointers. - std::vector<llvm::Constant *> baseElements(numBaseElements); + SmallVector<llvm::Constant *, 16> baseElements(numBaseElements); FillInNullDataMemberPointers(CGM, CGM.getContext().getTypeDeclType(base), baseElements, 0); |