Here is the bug report: <a href="http://llvm.org/bugs/show_bug.cgi?id=14879">http://llvm.org/bugs/show_bug.cgi?id=14879</a><br><br>Thanks for your help Jakob!<br><br><div class="gmail_quote">2013/1/9 Jakob Stoklund Olesen <span dir="ltr"><<a href="mailto:stoklund@2pi.dk" target="_blank">stoklund@2pi.dk</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
On Jan 9, 2013, at 10:46 AM, Borja Ferrer <<a href="mailto:borja.ferav@gmail.com">borja.ferav@gmail.com</a>> wrote:<br>
<br>
> Ok, I've found that marking tiny live intervals as not spillable inside VirtRegAuxInfo::CalculateWeightAndHint is not playing nicely with very constrained regclasses, in my case a regclass composed of only one register.<br>

> As a workaround, instead of marking them as not spillable, I've marked them with a very high spill cost and the regalloc is able to compile the function with good code quality. To avoid doing this for all live intervals of this regclass, I'm filtering only the ones that dont have a small size (returned by li.getSize())<br>

><br>
> Does this possible cause make any sense at all?<br>
<br>
</div>Yes, that sounds like a workable fix.<br>
<br>
It is important that live ranges coming out of the spiller are unspillable, but the zero length intervals don't need an infinite spill weight - very very large is good enough.<br>
<div class="im"><br>
> In either case, in the meantime, I can live with this workaround until an official fix is implemented. I'll fill in a bug report to track this problem so you can take a look at it when appropiate.<br>
<br>
</div>Thanks.<br>
<span class="HOEnZb"><font color="#888888"><br>
/jakob<br>
<br>
</font></span></blockquote></div><br>