Fix comment and use the "Size" variable that's already provided.
authorBill Wendling <isanbard@gmail.com>
Tue, 23 Oct 2007 23:36:57 +0000 (23:36 +0000)
committerBill Wendling <isanbard@gmail.com>
Tue, 23 Oct 2007 23:36:57 +0000 (23:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43271 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

index 71999b44c1eb8d816cdb2b3b11a0cc030a5f7206..39aa07618d1e69ee34eaadbcdce39c72f9d3d243 100644 (file)
@@ -4329,18 +4329,13 @@ void SelectionDAGLowering::visitMemIntrinsic(CallInst &I, unsigned Op) {
           }
         }
 
-        // Check to see if there is an unaligned memcpy from/onto the stack. If
-        // so, then ignore it for the present.
+        // The lowered load/store instructions from/to the stack frame can be
+        // unaligned depending on whether it's accessed off sp or fp. If this is
+        // the case, then just use the memcpy library call.
         if (Op1.getOpcode() == ISD::FrameIndex ||
-            Op2.getOpcode() == ISD::FrameIndex) {
-          unsigned TotalSize = 0;
-
-          for (unsigned i = 0; i < NumMemOps; i++)
-            TotalSize += MVT::getSizeInBits(MemOps[i]) / 8;
-
-          if (TotalSize % Align != 0)
+            Op2.getOpcode() == ISD::FrameIndex)
+          if (Size->getValue() % Align != 0)
             break;
-        }
 
         for (unsigned i = 0; i < NumMemOps; i++) {
           MVT::ValueType VT = MemOps[i];