Mercurial > projects > ldc
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); |