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

Borja Ferrer borja.ferav at gmail.com
Wed Jan 9 12:01:08 PST 2013


Here is the bug report: http://llvm.org/bugs/show_bug.cgi?id=14879

Thanks for your help Jakob!

2013/1/9 Jakob Stoklund Olesen <stoklund at 2pi.dk>

>
> On Jan 9, 2013, at 10:46 AM, Borja Ferrer <borja.ferav at gmail.com> wrote:
>
> > 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.
> > 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())
> >
> > Does this possible cause make any sense at all?
>
> Yes, that sounds like a workable fix.
>
> 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.
>
> > 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.
>
> Thanks.
>
> /jakob
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130109/fcd9941a/attachment.html>


More information about the llvm-dev mailing list