<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Feb 26, 2009, at 5:52 PM, John Mosby wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi Anton,<div><br></div><div>Thanks for your questions, that's what I'm looking for.<br><br><div class="gmail_quote">On Thu, Feb 26, 2009 at 5:33 PM, Anton Korobeynikov <span dir="ltr"><<a href="mailto:anton@korobeynikov.info">anton@korobeynikov.info</a>></span> wrote:<br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hello, John<br> <div class="Ih2E3d"><br> > My limited implementation uses a workaround that adjusts the<br> > generation of prologue code and the frame indices used by<br> > the target eliminateFrameIndex() when necessary. I am looking at<br> > several approaches, but I would like input from anyone who<br> > has an opinion.<br> </div>I haven't looked into the patch deep enough yet, but I have at least 2 questions:<br> 1. How do all the stuff play with dynamic stack realignment?<br> 2. It seems, that dwarf information about callee-saved registers is invalidated by your patch.<br> This means, that you won't have sane stack traces in the debugger. Unwinding won't also work.<br> Have you tried to compile some C++ code, which uses EH?</blockquote><div><br></div><div>Integrating shrink wrapping with dynamic stack realignment, debugging info, EH (and more)<br></div><div>requires a more general (or more complete) way of treating callee-saved registers, and I did</div> <div>not attempt to tackle this in the patch. I meant to show a starting point for this work and get</div><div>some questions coming in (working so far :-)).</div></div></div></blockquote><div><br></div>I think for step 1 PEI should not attempt shrink wrapping when dynamic stack realignment or EH is required. Debug info is a different story. We are in the process of eliminating debug specific instructions (i.e. rely completely on DebugLoc on machine instructions). Once that's done, it should *just work*. </div><div><br></div><div>Evan</div><div><br><blockquote type="cite"><div><div class="gmail_quote"><div><br></div><div>I am not far along enough with the two approaches I'm looking at to give more detail. I will</div> <div>have more worked out in a few days.</div><div><br></div><div>I'm still coming up to speed in the code generator areas, so thanks for your patience!</div><div> </div><div>Again, thanks for your questions,</div><div> John</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br> <br> --<br> With best regards, Anton Korobeynikov.<br> <br> Faculty of Mathematics & Mechanics, Saint Petersburg State University.<br> <br> _______________________________________________<br> LLVM Developers mailing list<br> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br> </blockquote></div><br></div> _______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div><br></body></html>