<div class="gmail_extra"><div class="gmail_quote">On Tue, Jul 10, 2012 at 9:13 AM, Jakob Stoklund Olesen <span dir="ltr"><<a href="mailto:stoklund@2pi.dk" target="_blank" class="cremed">stoklund@2pi.dk</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 Jul 10, 2012, at 8:50 AM, Chandler Carruth <<a href="mailto:chandlerc@gmail.com" target="_blank" class="cremed">chandlerc@gmail.com</a>> wrote:</div>
<br></div><blockquote type="cite"><div class="gmail_extra"><div class="gmail_quote"><div class="im">On Tue, Jul 10, 2012 at 8:33 AM, Jakob Stoklund Olesen <span dir="ltr"><<a href="mailto:stoklund@2pi.dk" target="_blank" class="cremed">stoklund@2pi.dk</a>></span> wrote:<br>

</div><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>FWIW, I am planning to rip out LiveVariables and compute LiveIntervals directly from the machine code using LiveRangeCalc. This is already done for regunit liveness. This may help the constant factor, but it is still the same algorithm.</div>
</blockquote>
<div><br></div><div>Hrm... I wonder if it's worth having an adaptive algorithm so that we bail out quickly when the structure of the function is going to quickly go quadratic with the algorithm? Even if it costs some optimization, that would seem better than grinding codegen to a halt.</div>
</div></div></div></blockquote><div><br></div><div>Unfortunately, we can't bail out of register allocation.</div></div></div></blockquote><div><br></div><div>But is there a cheaper algorithm we could fall over to? I don't know the first thing about regalloc, so maybe this doesn't make sense. Just trying to get a feel for whether this is solvable within the backend, or we simply must not produce such inputs.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div class="im"><div><br></div><blockquote type="cite"><div class="gmail_extra">
<div class="gmail_quote"><div>That said, about 40% of what the profile is showing (which  may or may not be that accurate sadly...) isn't out of LiveVariables, its TwoAddressInstructionPass (and its helper findLocalKills). I'm going to work on that one and see if I can get that to go away -- it doesn't look inherently slow at first glance.</div>
</div></div></blockquote><div><br></div></div><div>Good idea.</div><div><br></div></div></div>
<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" class="cremed">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank" class="cremed">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>