[llvm-commits] [llvm] r58890 - /llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp

Scott Michel scottm at aero.org
Fri Nov 7 21:16:20 PST 2008


Author: pingbak
Date: Fri Nov  7 23:16:20 2008
New Revision: 58890

URL: http://llvm.org/viewvc/llvm-project?rev=58890&view=rev
Log:
CellSPU: Fix prologue/epilogue emission when function contains calls but
theframe size is 0; the prologue and epilogue should be emitted in this case.

Modified:
    llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp

Modified: llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp?rev=58890&r1=58889&r2=58890&view=diff

==============================================================================
--- llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp (original)
+++ llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp Fri Nov  7 23:16:20 2008
@@ -438,7 +438,7 @@
   assert((FrameSize & 0xf) == 0
          && "SPURegisterInfo::emitPrologue: FrameSize not aligned");
 
-  if (FrameSize > 0) {
+  if (FrameSize > 0 || MFI->hasCalls()) {
     FrameSize = -(FrameSize + SPUFrameInfo::minStackSize());
     if (hasDebugInfo) {
       // Mark effective beginning of when frame pointer becomes valid.
@@ -534,7 +534,7 @@
          "Can only insert epilog into returning blocks");
   assert((FrameSize & 0xf) == 0
          && "SPURegisterInfo::emitEpilogue: FrameSize not aligned");
-  if (FrameSize > 0) {
+  if (FrameSize > 0 || MFI->hasCalls()) {
     FrameSize = FrameSize + SPUFrameInfo::minStackSize();
     if (isS10Constant(FrameSize + LinkSlotOffset)) {
       // Reload $lr, adjust $sp by required amount





More information about the llvm-commits mailing list