comparison gen/runtime.cpp @ 1633:5c0cebff9be8

Improve array append performance. Actually use the appropriate runtime function, instead of just growing the array by one!
author Christian Kamm <kamm incasoftware de>
date Sun, 14 Feb 2010 10:11:05 +0100
parents 30bdcfb8299e
children
comparison
equal deleted inserted replaced
1632:8c37dcd7cfde 1633:5c0cebff9be8
324 const llvm::FunctionType* fty = llvm::FunctionType::get(voidPtrTy, types, false); 324 const llvm::FunctionType* fty = llvm::FunctionType::get(voidPtrTy, types, false);
325 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M); 325 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M);
326 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M); 326 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M);
327 } 327 }
328 328
329 // void* _d_arrayappendcT(TypeInfo ti, void* array, void* element)
330 {
331 llvm::StringRef fname("_d_arrayappendcT");
332 std::vector<const LLType*> types;
333 types.push_back(typeInfoTy);
334 types.push_back(voidPtrTy);
335 types.push_back(voidPtrTy);
336 const llvm::FunctionType* fty = llvm::FunctionType::get(rt_array(byteTy), types, false);
337 llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M);
338 }
339
329 // Object _d_allocclass(ClassInfo ci) 340 // Object _d_allocclass(ClassInfo ci)
330 { 341 {
331 llvm::StringRef fname("_d_allocclass"); 342 llvm::StringRef fname("_d_allocclass");
332 std::vector<const LLType*> types; 343 std::vector<const LLType*> types;
333 types.push_back(classInfoTy); 344 types.push_back(classInfoTy);