eliminate vector-related allocations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34223 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/IntrinsicLowering.cpp b/lib/CodeGen/IntrinsicLowering.cpp
index 51879da..35e20e3 100644
--- a/lib/CodeGen/IntrinsicLowering.cpp
+++ b/lib/CodeGen/IntrinsicLowering.cpp
@@ -19,6 +19,7 @@
#include "llvm/CodeGen/IntrinsicLowering.h"
#include "llvm/Support/Streams.h"
#include "llvm/Target/TargetData.h"
+#include "llvm/ADT/SmallVector.h"
using namespace llvm;
template <class ArgIt>
@@ -52,8 +53,9 @@
FunctionType::get(RetTy, ParamTys, false));
}
- std::vector<Value*> Operands(ArgBegin, ArgEnd);
- CallInst *NewCI = new CallInst(FCache, Operands, CI->getName(), CI);
+ SmallVector<Value*, 8> Operands(ArgBegin, ArgEnd);
+ CallInst *NewCI = new CallInst(FCache, &Operands[0], Operands.size(),
+ CI->getName(), CI);
if (!CI->use_empty())
CI->replaceAllUsesWith(NewCI);
return NewCI;
diff --git a/lib/ExecutionEngine/JIT/JIT.cpp b/lib/ExecutionEngine/JIT/JIT.cpp
index eabe4ea..ca3dbb9 100644
--- a/lib/ExecutionEngine/JIT/JIT.cpp
+++ b/lib/ExecutionEngine/JIT/JIT.cpp
@@ -187,7 +187,7 @@
// Convert all of the GenericValue arguments over to constants. Note that we
// currently don't support varargs.
- std::vector<Value*> Args;
+ SmallVector<Value*, 8> Args;
for (unsigned i = 0, e = ArgValues.size(); i != e; ++i) {
Constant *C = 0;
const Type *ArgTy = FTy->getParamType(i);
@@ -225,7 +225,7 @@
Args.push_back(C);
}
- CallInst *TheCall = new CallInst(F, Args, "", StubBB);
+ CallInst *TheCall = new CallInst(F, &Args[0], Args.size(), "", StubBB);
TheCall->setTailCall();
if (TheCall->getType() != Type::VoidTy)
new ReturnInst(TheCall, StubBB); // Return result of the call.