diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2010-12-30 00:13:21 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2010-12-30 00:13:21 +0000 |
commit | 9f0c7cc36d29cf591c33962931f5862847145f3e (patch) | |
tree | 39269ee4705c774eb1f09846e64c98036662c506 /lib/CodeGen/CGExprAgg.cpp | |
parent | 272324bc881450a71873d2f4e72f17837d8998df (diff) |
Simplify mem{cpy, move, set} creation with IRBuilder.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122634 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGExprAgg.cpp')
-rw-r--r-- | lib/CodeGen/CGExprAgg.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp index cf1c7415bc..f02145ee29 100644 --- a/lib/CodeGen/CGExprAgg.cpp +++ b/lib/CodeGen/CGExprAgg.cpp @@ -806,16 +806,13 @@ static void CheckAggExprForMemSetUse(AggValueSlot &Slot, const Expr *E, // Okay, it seems like a good idea to use an initial memset, emit the call. llvm::Constant *SizeVal = CGF.Builder.getInt64(TypeInfo.first/8); - llvm::ConstantInt *AlignVal = CGF.Builder.getInt32(TypeInfo.second/8); + unsigned Align = TypeInfo.second/8; llvm::Value *Loc = Slot.getAddr(); const llvm::Type *BP = llvm::Type::getInt8PtrTy(CGF.getLLVMContext()); Loc = CGF.Builder.CreateBitCast(Loc, BP); - CGF.Builder.CreateCall5(CGF.CGM.getMemSetFn(Loc->getType(), - SizeVal->getType()), - Loc, CGF.Builder.getInt8(0), SizeVal, AlignVal, - CGF.Builder.getFalse()); + CGF.Builder.CreateMemSet(Loc, CGF.Builder.getInt8(0), SizeVal, Align, false); // Tell the AggExprEmitter that the slot is known zero. Slot.setZeroed(); @@ -935,11 +932,7 @@ void CodeGenFunction::EmitAggregateCopy(llvm::Value *DestPtr, } } - Builder.CreateCall5(CGM.getMemCpyFn(DestPtr->getType(), SrcPtr->getType(), - IntPtrTy), - DestPtr, SrcPtr, - // TypeInfo.first describes size in bits. - llvm::ConstantInt::get(IntPtrTy, TypeInfo.first/8), - Builder.getInt32(TypeInfo.second/8), - Builder.getInt1(isVolatile)); + Builder.CreateMemCpy(DestPtr, SrcPtr, + llvm::ConstantInt::get(IntPtrTy, TypeInfo.first/8), + TypeInfo.second/8, isVolatile); } |