mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
eliminate vector-related allocations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34223 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c18470cb00
commit
990b849abc
@ -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 @@ static CallInst *ReplaceCallWith(const char *NewFn, CallInst *CI,
|
||||
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;
|
||||
|
@ -187,7 +187,7 @@ GenericValue JIT::runFunction(Function *F,
|
||||
|
||||
// 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 @@ GenericValue JIT::runFunction(Function *F,
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user