changeset 1395:6063ddfcf27d

Try to cut down reallocations when building string literals.
author Tomas Lindquist Olsen <tomas.l.olsen gmail com>
date Mon, 18 May 2009 16:01:22 +0200
parents 193ab3969920
children 24b33fdc7c0c
files gen/toir.cpp
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/gen/toir.cpp	Mon May 18 15:08:46 2009 +0200
+++ b/gen/toir.cpp	Mon May 18 16:01:22 2009 +0200
@@ -407,6 +407,7 @@
     else if (cty->size() == 2) {
         uint16_t* str = (uint16_t*)string;
         std::vector<LLConstant*> vals;
+        vals.reserve(len+1);
         for(size_t i=0; i<len; ++i) {
             vals.push_back(llvm::ConstantInt::get(ct, str[i], false));;
         }
@@ -416,6 +417,7 @@
     else if (cty->size() == 4) {
         uint32_t* str = (uint32_t*)string;
         std::vector<LLConstant*> vals;
+        vals.reserve(len+1);
         for(size_t i=0; i<len; ++i) {
             vals.push_back(llvm::ConstantInt::get(ct, str[i], false));;
         }
@@ -476,6 +478,7 @@
     else if (cty->size() == 2) {
         uint16_t* str = (uint16_t*)string;
         std::vector<LLConstant*> vals;
+        vals.reserve(len+1);
         for(size_t i=0; i<len; ++i) {
             vals.push_back(llvm::ConstantInt::get(ct, str[i], false));;
         }
@@ -486,6 +489,7 @@
     else if (cty->size() == 4) {
         uint32_t* str = (uint32_t*)string;
         std::vector<LLConstant*> vals;
+        vals.reserve(len+1);
         for(size_t i=0; i<len; ++i) {
             vals.push_back(llvm::ConstantInt::get(ct, str[i], false));;
         }