diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp | 3 | 
1 files changed, 2 insertions, 1 deletions
| diff --git a/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp b/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp index 087f022fe9d..5d867e71547 100644 --- a/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp +++ b/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp @@ -814,7 +814,8 @@ bool MemCpyOpt::processByValArgument(CallSite CS, unsigned ArgNo) {    // Find out what feeds this byval argument.    Value *ByValArg = CS.getArgument(ArgNo); -  uint64_t ByValSize = TD->getTypeAllocSize(ByValArg->getType()); +  const Type *ByValTy =cast<PointerType>(ByValArg->getType())->getElementType(); +  uint64_t ByValSize = TD->getTypeAllocSize(ByValTy);    MemDepResult DepInfo =      MD->getPointerDependencyFrom(AliasAnalysis::Location(ByValArg, ByValSize),                                   true, CS.getInstruction(), | 

