<div class="gmail_quote">On Fri, Aug 7, 2009 at 12:35 AM, Evan Cheng <span dir="ltr"><<a href="mailto:evan.cheng@apple.com">evan.cheng@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div style="word-wrap:break-word"><br><div><div class="im"><div>On Aug 6, 2009, at 2:59 PM, John Mosby wrote:</div><br><blockquote type="cite"><div class="gmail_quote">On Thu, Aug 6, 2009 at 2:41 PM, Jakob Stoklund Olesen <span dir="ltr"><<a href="mailto:stoklund@2pi.dk" target="_blank">stoklund@2pi.dk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex">

<div><br></div>The RS can get you a register in two ways:<br>
<br>
1. FindUnusedReg() tries to find a register that is currently not<br>
being used, and so can be used _for free_.<br>
2. scavengeRegister() will create a free register by saving it to the<br>
emergency spill slot.</blockquote><div><br></div><div>Indeed.</div></div></blockquote><div><br></div></div><div>Thanks John for your work.</div><div><br></div><div>I think we should consider changing the scavenger. I think it's getting a bit too complicated. I don't think it should be the scavenger's responsibility to track what callee save registers have been used or not. The caller should be the one that determines what registers should not be scavenged. That is, this FindUnusedReg</div>
<div><div>unsigned RegScavenger::FindUnusedReg(const TargetRegisterClass *RegClass,</div><div>                                     bool ExCalleeSaved)</div></div><div><br></div><div>probably ought to be eliminated.</div><div class="im">
<div></div></div></div></div></blockquote><div><br></div><div>What a relief, that was my initial reaction to that method! The method with a candidate list arg is useful and should stay, correct?</div><div> </div><div>John</div>
</div>