Mercurial > projects > ldc
diff gen/tollvm.cpp @ 1572:30bdcfb8299e
Avoid some unecessary heap allocations by using llvm's StringRef class.
author | Benjamin Kramer <benny.kra@gmail.com> |
---|---|
date | Fri, 14 Aug 2009 01:43:30 +0200 |
parents | 8d086d552909 |
children | e4f7b5d9c68a |
line wrap: on
line diff
--- a/gen/tollvm.cpp Fri Aug 14 00:39:18 2009 +0200 +++ b/gen/tollvm.cpp Fri Aug 14 01:43:30 2009 +0200 @@ -571,19 +571,19 @@ LLConstant* DtoConstString(const char* str) { - std::string s(str?str:""); + llvm::StringRef s(str?str:""); LLConstant* init = LLConstantArray::get(gIR->context(), s, true); llvm::GlobalVariable* gvar = new llvm::GlobalVariable( *gIR->module, init->getType(), true,llvm::GlobalValue::InternalLinkage, init, ".str"); LLConstant* idxs[2] = { DtoConstUint(0), DtoConstUint(0) }; return DtoConstSlice( - DtoConstSize_t(s.length()), + DtoConstSize_t(s.size()), llvm::ConstantExpr::getGetElementPtr(gvar,idxs,2) ); } LLConstant* DtoConstStringPtr(const char* str, const char* section) { - std::string s(str); + llvm::StringRef s(str); LLConstant* init = LLConstantArray::get(gIR->context(), s, true); llvm::GlobalVariable* gvar = new llvm::GlobalVariable( *gIR->module, init->getType(), true,llvm::GlobalValue::InternalLinkage, init, ".str");