This is causing test/CodeGen/CellSPU/call_indirect.ll to fail. See<br><a href="http://google1.osuosl.org:8011/builders/llvm-x86_64-linux/builds/197/steps/test/logs/stdio">http://google1.osuosl.org:8011/builders/llvm-x86_64-linux/builds/197/steps/test/logs/stdio</a><br>
<br> - Daniel<br><br><div class="gmail_quote">On Fri, Nov 7, 2008 at 9:16 PM, Scott Michel <span dir="ltr"><<a href="mailto:scottm@aero.org">scottm@aero.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Author: pingbak<br>
Date: Fri Nov  7 23:16:20 2008<br>
New Revision: 58890<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=58890&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=58890&view=rev</a><br>
Log:<br>
CellSPU: Fix prologue/epilogue emission when function contains calls but<br>
theframe size is 0; the prologue and epilogue should be emitted in this case.<br>
<br>
Modified:<br>
    llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp<br>
<br>
Modified: llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp?rev=58890&r1=58889&r2=58890&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp?rev=58890&r1=58889&r2=58890&view=diff</a><br>

<br>
==============================================================================<br>
--- llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp (original)<br>
+++ llvm/trunk/lib/Target/CellSPU/SPURegisterInfo.cpp Fri Nov  7 23:16:20 2008<br>
@@ -438,7 +438,7 @@<br>
   assert((FrameSize & 0xf) == 0<br>
          && "SPURegisterInfo::emitPrologue: FrameSize not aligned");<br>
<br>
-  if (FrameSize > 0) {<br>
+  if (FrameSize > 0 || MFI->hasCalls()) {<br>
     FrameSize = -(FrameSize + SPUFrameInfo::minStackSize());<br>
     if (hasDebugInfo) {<br>
       // Mark effective beginning of when frame pointer becomes valid.<br>
@@ -534,7 +534,7 @@<br>
          "Can only insert epilog into returning blocks");<br>
   assert((FrameSize & 0xf) == 0<br>
          && "SPURegisterInfo::emitEpilogue: FrameSize not aligned");<br>
-  if (FrameSize > 0) {<br>
+  if (FrameSize > 0 || MFI->hasCalls()) {<br>
     FrameSize = FrameSize + SPUFrameInfo::minStackSize();<br>
     if (isS10Constant(FrameSize + LinkSlotOffset)) {<br>
       // Reload $lr, adjust $sp by required amount<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br>