diff options
author | Bill Wendling <isanbard@gmail.com> | 2007-10-23 23:36:57 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2007-10-23 23:36:57 +0000 |
commit | 30eeb3c6c00088ecdcaae8850fbaaa933a316c32 (patch) | |
tree | 2c13823f81b759704b12a1643ab635ef2d141a57 | |
parent | 8b1c68cee4ddf42b4b57d4224f945ad9e9d4a779 (diff) |
Fix comment and use the "Size" variable that's already provided.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43271 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index 71999b44c1..39aa07618d 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/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]; |