]> granicus.if.org Git - clang/commitdiff
Twinify CodeGenFunction::CreateTempAlloca
authorDaniel Dunbar <daniel@zuster.org>
Mon, 19 Oct 2009 01:21:05 +0000 (01:21 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Mon, 19 Oct 2009 01:21:05 +0000 (01:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84456 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGCall.cpp
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CodeGenFunction.h

index bad166f01ef5d78272fb65c224b5fb8db5c56632..78655168e8572910ac78e11775d8b55d2e1f7dcc 100644 (file)
@@ -639,9 +639,8 @@ void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI,
       // If this structure was expanded into multiple arguments then
       // we need to create a temporary and reconstruct it from the
       // arguments.
-      std::string Name = Arg->getNameAsString();
       llvm::Value *Temp = CreateTempAlloca(ConvertTypeForMem(Ty),
-                                           (Name + ".addr").c_str());
+                                           Arg->getName() + ".addr");
       // FIXME: What are the right qualifiers here?
       llvm::Function::arg_iterator End =
         ExpandTypeFromArgs(Ty, LValue::MakeAddr(Temp, Qualifiers()), AI);
@@ -650,7 +649,7 @@ void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI,
       // Name the arguments used in expansion and increment AI.
       unsigned Index = 0;
       for (; AI != End; ++AI, ++Index)
-        AI->setName(Name + "." + llvm::Twine(Index));
+        AI->setName(Arg->getName() + "." + llvm::Twine(Index));
       continue;
     }
 
index 01fb766dfb0f90acdacdd6b4ca3dc783674021d8..6542aa50d2661b554e3a1a0d1188277f3d7297e1 100644 (file)
@@ -28,9 +28,9 @@ using namespace CodeGen;
 /// CreateTempAlloca - This creates a alloca and inserts it into the entry
 /// block.
 llvm::AllocaInst *CodeGenFunction::CreateTempAlloca(const llvm::Type *Ty,
-                                                    const char *Name) {
+                                                    const llvm::Twine &Name) {
   if (!Builder.isNamePreserving())
-    Name = "";
+    return new llvm::AllocaInst(Ty, 0, "", AllocaInsertPt);
   return new llvm::AllocaInst(Ty, 0, Name, AllocaInsertPt);
 }
 
index 722d002c19f57e6eddd5f53f6df61ea96a008758..3048257d2ceaf953bc5de4a9d927f55672d952af 100644 (file)
@@ -34,6 +34,7 @@ namespace llvm {
   class LLVMContext;
   class Module;
   class SwitchInst;
+  class Twine;
   class Value;
 }
 
@@ -508,7 +509,7 @@ public:
   /// CreateTempAlloca - This creates a alloca and inserts it into the entry
   /// block.
   llvm::AllocaInst *CreateTempAlloca(const llvm::Type *Ty,
-                                     const char *Name = "tmp");
+                                     const llvm::Twine &Name = "tmp");
 
   /// EvaluateExprAsBool - Perform the usual unary conversions on the specified
   /// expression and compare the result against zero, returning an Int1Ty value.