]> granicus.if.org Git - clang/commitdiff
lib/CodeGen/CGCall.cpp: Don't invoke multiple Builder.CreateBitCast() on Builder...
authorNAKAMURA Takumi <geek4civic@gmail.com>
Thu, 10 Mar 2011 14:02:21 +0000 (14:02 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Thu, 10 Mar 2011 14:02:21 +0000 (14:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127405 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGCall.cpp

index 1ed3f63da1c92ac16c0f700ae250644d4e204355..e2bdb0db65180d2b790383741559ef42c37803e5 100644 (file)
@@ -909,8 +909,10 @@ void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI,
           // copy.
           const llvm::Type *I8PtrTy = Builder.getInt8PtrTy();
           CharUnits Size = getContext().getTypeSizeInChars(Ty);
-          Builder.CreateMemCpy(Builder.CreateBitCast(AlignedTemp, I8PtrTy),
-                               Builder.CreateBitCast(V, I8PtrTy),
+          llvm::Value *Dst = Builder.CreateBitCast(AlignedTemp, I8PtrTy);
+          llvm::Value *Src = Builder.CreateBitCast(V, I8PtrTy);
+          Builder.CreateMemCpy(Dst,
+                               Src,
                                llvm::ConstantInt::get(IntPtrTy, 
                                                       Size.getQuantity()),
                                ArgI.getIndirectAlign(),