[LLVMdev] LLVM ERROR: ran out of registers during register allocation

Borja Ferrer borja.ferav at gmail.com
Wed Dec 19 14:21:09 PST 2012


>
> We did something like this back when the register allocator couldn't split
> live ranges.
>

Yes, I remember the isWinToJoinCrossClass() function, removed here:
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp?r1=152016&r2=155551&diff_format=h
that prevented some coalescing to the cost of leaving many unnecessary
copies around for very constrained regclasses like the one I have.


>
> The problem is that any heuristic you can come up with only makes the
> problem less likely to happen. It doesn't actually fix it.
>

Indeed, that heuristic I wrote is a nasty hack and not the way of fixing it
correctly. Now that the regalloc has much more freedom on making changes in
the code I hope it is fixable. If you need any other info apart of the
dumps I've already attached please ask.

Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121219/ec484581/attachment.html>


More information about the llvm-dev mailing list