set function/global names with setName instead of passing the name into the
ctor function.  This avoids creating a temporary std::string for the name,
speeding up the testcase in PR3810 by 3.8%


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67457 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index b259a5d..4cd046d 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -630,7 +630,8 @@
   }
   llvm::Function *F = llvm::Function::Create(cast<llvm::FunctionType>(Ty), 
                                              llvm::Function::ExternalLinkage,
-                                             MangledName, &getModule());
+                                             "", &getModule());
+  F->setName(MangledName);
   if (ShouldSetAttributes)
     SetFunctionAttributes(D, F);
   Entry = F;
@@ -677,8 +678,9 @@
   llvm::GlobalVariable *GV = 
     new llvm::GlobalVariable(Ty, false, 
                              llvm::GlobalValue::ExternalLinkage,
-                             0, MangledName, &getModule(), 
+                             0, "", &getModule(), 
                              0, ASTTy.getAddressSpace());
+  GV->setName(MangledName);
 
   // Handle things which are present even on external declarations.