From 38ccabcae960984561044244ff5b831b229a61be Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Tue, 23 Oct 2007 23:36:57 +0000 Subject: [PATCH] Fix comment and use the "Size" variable that's already provided. llvm-svn: 43271 --- .../lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index 71999b44c1eb..39aa07618d1e 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -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];