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 ? const char* fnname = defaultInit ?
(zeroInit ? "_d_newarrayT" : "_d_newarrayiT") : (zeroInit ? "_d_newarrayT" : "_d_newarrayiT") :
"_d_newarrayvT"; "_d_newarrayU";
LLFunction* fn = LLVM_D_GetRuntimeFunction(loc, gIR->module, fnname); LLFunction* fn = LLVM_D_GetRuntimeFunction(loc, gIR->module, fnname);
// call allocator // call allocator

View file

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

View file

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

View file

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

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