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 | acc6b4e2fdd9a242b7f15ded72dd542c0518a115 (patch) | |
| tree | 217e367cfb43be9d0d2a62fc57a80c51ec35e78f /clang/lib/CodeGen/CGExprAgg.cpp | |
| parent | 7bcde197d75fa40c982e47668dcfac2258f55296 (diff) | |
| download | bcm5719-llvm-acc6b4e2fdd9a242b7f15ded72dd542c0518a115.tar.gz bcm5719-llvm-acc6b4e2fdd9a242b7f15ded72dd542c0518a115.zip | |
Simplify mem{cpy, move, set} creation with IRBuilder.
llvm-svn: 122634
Diffstat (limited to 'clang/lib/CodeGen/CGExprAgg.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGExprAgg.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/clang/lib/CodeGen/CGExprAgg.cpp b/clang/lib/CodeGen/CGExprAgg.cpp index cf1c7415bc8..f02145ee298 100644 --- a/clang/lib/CodeGen/CGExprAgg.cpp +++ b/clang/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); } |

