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");