From: Chris Lattner Date: Sat, 8 Jan 2011 22:11:56 +0000 (+0000) Subject: tryMergingIntoMemset can only handle constant length memsets. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=0468e3e2654cdd0ede16efa025161ce39785eb8d;p=oota-llvm.git tryMergingIntoMemset can only handle constant length memsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123090 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/MemCpyOptimizer.cpp b/lib/Transforms/Scalar/MemCpyOptimizer.cpp index 4210f0d9b79..76fab1cd281 100644 --- a/lib/Transforms/Scalar/MemCpyOptimizer.cpp +++ b/lib/Transforms/Scalar/MemCpyOptimizer.cpp @@ -515,11 +515,12 @@ bool MemCpyOpt::processStore(StoreInst *SI, BasicBlock::iterator &BBI) { bool MemCpyOpt::processMemSet(MemSetInst *MSI, BasicBlock::iterator &BBI) { // See if there is another memset or store neighboring this memset which // allows us to widen out the memset to do a single larger store. - if (Instruction *I = tryMergingIntoMemset(MSI, MSI->getDest(), - MSI->getValue())) { - BBI = I; // Don't invalidate iterator. - return true; - } + if (isa(MSI->getLength()) && !MSI->isVolatile()) + if (Instruction *I = tryMergingIntoMemset(MSI, MSI->getDest(), + MSI->getValue())) { + BBI = I; // Don't invalidate iterator. + return true; + } return false; }