Lowering a memcpy to the stack is killing PPC. The ARM and X86 backends already
authorBill Wendling <isanbard@gmail.com>
Tue, 23 Oct 2007 21:30:25 +0000 (21:30 +0000)
committerBill Wendling <isanbard@gmail.com>
Tue, 23 Oct 2007 21:30:25 +0000 (21:30 +0000)
have their own custom memcpy lowering code. This code needs to be factored out
into a target-independent lowering method with hooks to the backend. In the
meantime, just call memcpy if we're trying to copy onto a stack.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43262 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

index 610c898d170511a06e16e192e41d4761f84cbc76..4468d16e8c271d5196fccd37a42f318d1683745f 100644 (file)
@@ -4302,6 +4302,10 @@ void SelectionDAGLowering::visitMemIntrinsic(CallInst &I, unsigned Op) {
       break;
     }
     case ISD::MEMCPY: {
+      // FIXME: Disabling memcpy lowering for copying onto the stack.
+      if (Op1.getOpcode() == ISD::FrameIndex)
+        break;
+
       if (MeetsMaxMemopRequirement(MemOps, TLI.getMaxStoresPerMemcpy(),
                                    Size->getValue(), Align, TLI)) {
         unsigned NumMemOps = MemOps.size();