eliminate temporary vectors
authorChris Lattner <sabre@nondot.org>
Wed, 31 Jan 2007 19:59:55 +0000 (19:59 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 31 Jan 2007 19:59:55 +0000 (19:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33712 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/GlobalOpt.cpp
lib/Transforms/IPO/SimplifyLibCalls.cpp

index f76c152b8adade83c50204aed7cafa3a24dc2b01..342a481af7476f3a7de7484d2a58b8a5f4804d08 100644 (file)
@@ -452,11 +452,11 @@ static GlobalVariable *SRAGlobal(GlobalVariable *GV) {
                                                 &Idxs[0], Idxs.size());
       } else {
         GetElementPtrInst *GEPI = cast<GetElementPtrInst>(GEP);
-        std::vector<Value*> Idxs;
+        SmallVector<Value*, 8> Idxs;
         Idxs.push_back(NullInt);
         for (unsigned i = 3, e = GEPI->getNumOperands(); i != e; ++i)
           Idxs.push_back(GEPI->getOperand(i));
-        NewPtr = new GetElementPtrInst(NewPtr, Idxs,
+        NewPtr = new GetElementPtrInst(NewPtr, &Idxs[0], Idxs.size(),
                                        GEPI->getName()+"."+utostr(Val), GEPI);
       }
     GEP->replaceAllUsesWith(NewPtr);
@@ -684,10 +684,9 @@ static GlobalVariable *OptimizeGlobalAddressOfMalloc(GlobalVariable *GV,
     MallocInst *NewMI =
       new MallocInst(NewTy, Constant::getNullValue(Type::Int32Ty),
                      MI->getAlignment(), MI->getName(), MI);
-    std::vector<Value*> Indices;
-    Indices.push_back(Constant::getNullValue(Type::Int32Ty));
-    Indices.push_back(Indices[0]);
-    Value *NewGEP = new GetElementPtrInst(NewMI, Indices,
+    Value* Indices[2];
+    Indices[0] = Indices[1] = Constant::getNullValue(Type::Int32Ty);
+    Value *NewGEP = new GetElementPtrInst(NewMI, Indices, 2,
                                           NewMI->getName()+".el0", MI);
     MI->replaceAllUsesWith(NewGEP);
     MI->eraseFromParent();
index e4eb6e42c110b8a054f0df5c73b656c9dcb2b51d..3ace4b365f4cfc08baa96e15db8cbf9a2198a17f 100644 (file)
@@ -505,10 +505,8 @@ public:
     // Now that we have the destination's length, we must index into the
     // destination's pointer to get the actual memcpy destination (end of
     // the string .. we're concatenating).
-    std::vector<Value*> idx;
-    idx.push_back(strlen_inst);
     GetElementPtrInst* gep =
-      new GetElementPtrInst(dest,idx,dest->getName()+".indexed",ci);
+      new GetElementPtrInst(dest, strlen_inst, dest->getName()+".indexed", ci);
 
     // We have enough information to now generate the memcpy call to
     // do the concatenation for us.
@@ -596,9 +594,8 @@ public:
     // strchr(s,c)  -> offset_of_in(c,s)
     //    (if c is a constant integer and s is a constant string)
     if (char_found) {
-      std::vector<Value*> indices;
-      indices.push_back(ConstantInt::get(Type::Int64Ty,offset));
-      GetElementPtrInst* GEP = new GetElementPtrInst(ci->getOperand(1),indices,
+      Value* Idx = ConstantInt::get(Type::Int64Ty,offset);
+      GetElementPtrInst* GEP = new GetElementPtrInst(ci->getOperand(1), Idx, 
           ci->getOperand(1)->getName()+".strchr",ci);
       ci->replaceAllUsesWith(GEP);
     } else {