From e0135406545a350f761d19b8576c10531754e4bc Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 31 Jan 2007 04:43:46 +0000 Subject: [PATCH] eliminate a temporary vector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33695 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AsmParser/llvmAsmParser.y | 5 +++-- lib/Bytecode/Reader/Reader.cpp | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index 229845d5e3b..586896cfa07 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -20,6 +20,7 @@ #include "llvm/SymbolTable.h" #include "llvm/Support/GetElementPtrTypeIterator.h" #include "llvm/Support/CommandLine.h" +#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/STLExtras.h" #include "llvm/Support/MathExtras.h" #include "llvm/Support/Streams.h" @@ -1733,7 +1734,7 @@ ConstExpr: CastOps '(' ConstVal TO Types ')' { if (!IdxTy) GEN_ERROR("Index list invalid for constant getelementptr!"); - std::vector IdxVec; + SmallVector IdxVec; for (unsigned i = 0, e = $4->size(); i != e; ++i) if (Constant *C = dyn_cast((*$4)[i])) IdxVec.push_back(C); @@ -1742,7 +1743,7 @@ ConstExpr: CastOps '(' ConstVal TO Types ')' { delete $4; - $$ = ConstantExpr::getGetElementPtr($3, IdxVec); + $$ = ConstantExpr::getGetElementPtr($3, &IdxVec[0], IdxVec.size()); CHECK_FOR_ERROR } | SELECT '(' ConstVal ',' ConstVal ',' ConstVal ')' { diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp index 718ba3e8003..3c72d639e03 100644 --- a/lib/Bytecode/Reader/Reader.cpp +++ b/lib/Bytecode/Reader/Reader.cpp @@ -1171,8 +1171,8 @@ Value *BytecodeReader::ParseConstantPoolValue(unsigned TypeID) { if (Handler) Handler->handleConstantExpression(Opcode, ArgVec, Result); return Result; } else if (Opcode == Instruction::GetElementPtr) { // GetElementPtr - std::vector IdxList(ArgVec.begin()+1, ArgVec.end()); - Constant *Result = ConstantExpr::getGetElementPtr(ArgVec[0], IdxList); + Constant *Result = ConstantExpr::getGetElementPtr(ArgVec[0], &ArgVec[1], + ArgVec.size()-1); if (Handler) Handler->handleConstantExpression(Opcode, ArgVec, Result); return Result; } else if (Opcode == Instruction::Select) {