[llvm-commits] [llvm] r123090 - /llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp

Chris Lattner sabre at nondot.org
Sat Jan 8 14:11:56 PST 2011


Author: lattner
Date: Sat Jan  8 16:11:56 2011
New Revision: 123090

URL: http://llvm.org/viewvc/llvm-project?rev=123090&view=rev
Log:
tryMergingIntoMemset can only handle constant length memsets.

Modified:
    llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp?rev=123090&r1=123089&r2=123090&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp Sat Jan  8 16:11:56 2011
@@ -515,11 +515,12 @@
 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<ConstantInt>(MSI->getLength()) && !MSI->isVolatile())
+    if (Instruction *I = tryMergingIntoMemset(MSI, MSI->getDest(),
+                                              MSI->getValue())) {
+      BBI = I;  // Don't invalidate iterator.
+      return true;
+    }
   return false;
 }
 





More information about the llvm-commits mailing list