[llvm-commits] [llvm] r132601 - in /llvm/trunk/lib/Target/Blackfin: BlackfinFrameLowering.cpp BlackfinFrameLowering.h BlackfinRegisterInfo.h

Jakob Stoklund Olesen stoklund at 2pi.dk
Fri Jun 3 15:45:18 PDT 2011


Author: stoklund
Date: Fri Jun  3 17:45:18 2011
New Revision: 132601

URL: http://llvm.org/viewvc/llvm-project?rev=132601&view=rev
Log:
Blackfin always uses a reserved call frame.

Materializing the stack pointer update before a call requires a scratch
register that may not be available.

Modified:
    llvm/trunk/lib/Target/Blackfin/BlackfinFrameLowering.cpp
    llvm/trunk/lib/Target/Blackfin/BlackfinFrameLowering.h
    llvm/trunk/lib/Target/Blackfin/BlackfinRegisterInfo.h

Modified: llvm/trunk/lib/Target/Blackfin/BlackfinFrameLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Blackfin/BlackfinFrameLowering.cpp?rev=132601&r1=132600&r2=132601&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Blackfin/BlackfinFrameLowering.cpp (original)
+++ llvm/trunk/lib/Target/Blackfin/BlackfinFrameLowering.cpp Fri Jun  3 17:45:18 2011
@@ -31,6 +31,12 @@
     MFI->adjustsStack() || MFI->hasVarSizedObjects();
 }
 
+// Always reserve a call frame. We dont have enough registers to adjust SP.
+bool BlackfinFrameLowering::
+hasReservedCallFrame(const MachineFunction &MF) const {
+  return true;
+}
+
 // Emit a prologue that sets up a stack frame.
 // On function entry, R0-R2 and P0 may hold arguments.
 // R3, P1, and P2 may be used as scratch registers

Modified: llvm/trunk/lib/Target/Blackfin/BlackfinFrameLowering.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Blackfin/BlackfinFrameLowering.h?rev=132601&r1=132600&r2=132601&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Blackfin/BlackfinFrameLowering.h (original)
+++ llvm/trunk/lib/Target/Blackfin/BlackfinFrameLowering.h Fri Jun  3 17:45:18 2011
@@ -36,6 +36,7 @@
   void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
 
   bool hasFP(const MachineFunction &MF) const;
+  bool hasReservedCallFrame(const MachineFunction &MF) const;
 
   void processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
                                             RegScavenger *RS) const;

Modified: llvm/trunk/lib/Target/Blackfin/BlackfinRegisterInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Blackfin/BlackfinRegisterInfo.h?rev=132601&r1=132600&r2=132601&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Blackfin/BlackfinRegisterInfo.h (original)
+++ llvm/trunk/lib/Target/Blackfin/BlackfinRegisterInfo.h Fri Jun  3 17:45:18 2011
@@ -41,8 +41,6 @@
       return &BF::PRegClass;
     }
 
-    // bool hasReservedCallFrame(MachineFunction &MF) const;
-
     bool requiresRegisterScavenging(const MachineFunction &MF) const;
 
     void eliminateCallFramePseudoInstr(MachineFunction &MF,





More information about the llvm-commits mailing list