Use _d_newarrayU instead of _d_newarrayvT

This commit is contained in:
Alexey Prokhin 2014-08-20 17:39:42 +04:00
parent 8f7f264c89
commit 50f729d415
5 changed files with 9 additions and 9 deletions

View file

@ -617,7 +617,7 @@ DSliceValue* DtoNewDynArray(Loc& loc, Type* arrayType, DValue* dim, bool default
const char* fnname = defaultInit ?
(zeroInit ? "_d_newarrayT" : "_d_newarrayiT") :
"_d_newarrayvT";
"_d_newarrayU";
LLFunction* fn = LLVM_D_GetRuntimeFunction(loc, gIR->module, fnname);
// call allocator

View file

@ -385,7 +385,7 @@ namespace {
Module* M;
TypeInfoFI AllocMemoryT;
ArrayFI NewArrayVT;
ArrayFI NewArrayU;
ArrayFI NewArrayT;
AllocClassFI AllocClass;
UntypedMemoryFI AllocMemory;
@ -427,12 +427,12 @@ FunctionPass *createGarbageCollect2Stack() {
GarbageCollect2Stack::GarbageCollect2Stack()
: FunctionPass(ID),
AllocMemoryT(ReturnType::Pointer, 0),
NewArrayVT(ReturnType::Array, 0, 1, false),
NewArrayU(ReturnType::Array, 0, 1, false),
NewArrayT(ReturnType::Array, 0, 1, true),
AllocMemory(0)
{
KnownFunctions["_d_allocmemoryT"] = &AllocMemoryT;
KnownFunctions["_d_newarrayvT"] = &NewArrayVT;
KnownFunctions["_d_newarrayU"] = &NewArrayU;
KnownFunctions["_d_newarrayT"] = &NewArrayT;
KnownFunctions["_d_newclass"] = &AllocClass;
KnownFunctions["_d_allocmemory"] = &AllocMemory;

View file

@ -343,7 +343,7 @@ void SimplifyDRuntimeCalls::InitOptimizations() {
Optimizations["_d_allocmemoryT"] = &Allocation;
Optimizations["_d_newarrayT"] = &Allocation;
Optimizations["_d_newarrayiT"] = &Allocation;
Optimizations["_d_newarrayvT"] = &Allocation;
Optimizations["_d_newarrayU"] = &Allocation;
Optimizations["_d_newarraymT"] = &Allocation;
Optimizations["_d_newarraymiT"] = &Allocation;
Optimizations["_d_newarraymvT"] = &Allocation;

View file

@ -88,7 +88,7 @@ static void checkForImplicitGCCall(const Loc &loc, const char *name)
"_d_newarrayiT",
"_d_newarraymT",
"_d_newarraymiT",
"_d_newarrayvT",
"_d_newarrayU",
"_d_newclass",
};
@ -410,11 +410,11 @@ static void LLVM_D_BuildRuntimeModule()
}
// void[] _d_newarrayT(TypeInfo ti, size_t length)
// void[] _d_newarrayiT(TypeInfo ti, size_t length)
// void[] _d_newarrayvT(TypeInfo ti, size_t length)
// void[] _d_newarrayU(TypeInfo ti, size_t length)
{
llvm::StringRef fname("_d_newarrayT");
llvm::StringRef fname2("_d_newarrayiT");
llvm::StringRef fname3("_d_newarrayvT");
llvm::StringRef fname3("_d_newarrayU");
LLType *types[] = { typeInfoTy, sizeTy };
LLFunctionType* fty = llvm::FunctionType::get(voidArrayTy, types, false);
llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M);

@ -1 +1 @@
Subproject commit d2fa88202fed6e7c227eaa71d738ded658267079
Subproject commit 4e75437a2805f0e3e6882a0b36b438303e402383