diff options
author | James Y Knight <jyknight@google.com> | 2019-02-01 20:44:47 +0000 |
---|---|---|
committer | James Y Knight <jyknight@google.com> | 2019-02-01 20:44:47 +0000 |
commit | 7716075a1729ead67844574fdb34579894122992 (patch) | |
tree | 1a3b91f53223202ab65c910dbc26979f5f05201c /llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp | |
parent | 14359ef1b6a0610ac91df5f5a91c88a0b51c187c (diff) | |
download | bcm5719-llvm-7716075a1729ead67844574fdb34579894122992.tar.gz bcm5719-llvm-7716075a1729ead67844574fdb34579894122992.zip |
[opaque pointer types] Pass value type to GetElementPtr creation.
This cleans up all GetElementPtr creation in LLVM to explicitly pass a
value type rather than deriving it from the pointer's element-type.
Differential Revision: https://reviews.llvm.org/D57173
llvm-svn: 352913
Diffstat (limited to 'llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp b/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp index 263683041c1..eeeef58384d 100644 --- a/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp +++ b/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp @@ -1134,8 +1134,10 @@ bool MemCpyOptPass::processMemSetMemCpyDependence(MemCpyInst *MemCpy, Value *SizeDiff = Builder.CreateSub(DestSize, SrcSize); Value *MemsetLen = Builder.CreateSelect( Ule, ConstantInt::getNullValue(DestSize->getType()), SizeDiff); - Builder.CreateMemSet(Builder.CreateGEP(Dest, SrcSize), MemSet->getOperand(1), - MemsetLen, Align); + Builder.CreateMemSet( + Builder.CreateGEP(Dest->getType()->getPointerElementType(), Dest, + SrcSize), + MemSet->getOperand(1), MemsetLen, Align); MD->removeInstruction(MemSet); MemSet->eraseFromParent(); |