diff options
Diffstat (limited to 'lib/Transforms/Scalar/MemCpyOptimizer.cpp')
-rw-r--r-- | lib/Transforms/Scalar/MemCpyOptimizer.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/Transforms/Scalar/MemCpyOptimizer.cpp b/lib/Transforms/Scalar/MemCpyOptimizer.cpp index 7ccca00..6d27327 100644 --- a/lib/Transforms/Scalar/MemCpyOptimizer.cpp +++ b/lib/Transforms/Scalar/MemCpyOptimizer.cpp @@ -427,9 +427,12 @@ bool MemCpyOpt::processStore(StoreInst *SI, BasicBlock::iterator& BBI) { // instruction needed by the start of the block. BasicBlock::iterator InsertPt = BI; - if (MemSetF == 0) + if (MemSetF == 0) { + const Type *Tys[] = {Type::Int64Ty}; MemSetF = Intrinsic::getDeclaration(SI->getParent()->getParent() - ->getParent(), Intrinsic::memset_i64); + ->getParent(), Intrinsic::memset, + Tys, 1); + } // Get the starting pointer of the block. StartPtr = Range.StartPtr; @@ -671,9 +674,11 @@ bool MemCpyOpt::processMemCpy(MemCpyInst* M) { return false; // If all checks passed, then we can transform these memcpy's + const Type *Tys[1]; + Tys[0] = M->getLength()->getType(); Function* MemCpyFun = Intrinsic::getDeclaration( M->getParent()->getParent()->getParent(), - M->getIntrinsicID()); + M->getIntrinsicID(), Tys, 1); std::vector<Value*> args; args.push_back(M->getRawDest()); |