[LLVMdev] "ran out of registers during register allocation"
reed kotler
rkotler at mips.com
Fri Jan 2 19:32:09 PST 2015
It seems like it might be a legitimate complaint from the register
allocator.
It's trying to get an accumulator (not a general purpose register) and
the accumulator is 64 bit.
It's using a part of the Mips backend that I have not worked in so I
have to research this a bit.
The multiply instruction is a pseudo multiply in the mips backend and it
needs the accumulator which a special register
and there is only one and it has special properties. This may normally
be getting sorted out by some code which
is not present during fast-isel.
On 01/02/2015 02:41 PM, Philip Reames wrote:
>
> On 01/02/2015 02:24 PM, reed kotler wrote:
>> I'm getting this error in RegAllocFast.cpp in compiling one source
>> file in test-suite as the result of a new Mips fast-isel patch
>> I was testing.
>>
>> It apparently just generates bad code and continues?
>>
>> // Nothing we can do. Report an error and keep going with a bad
>> allocation.
>> if (MI->isInlineAsm())
>> MI->emitError("inline assembly requires more registers than
>> available");
>> else
>> MI->emitError("ran out of registers during register allocation");
>>
>>
>> How is it possible to run out of registers during register
>> allocation? Lol.
> This seems to be one of the more common errors when you get a MI
> instruction definition wrong. In particular, I saw this a lot when
> experimenting with various lowering strategies for the statepoint
> work. I'd suggest trying to reduce the example using bugpoint and
> looking closely at the machine instructions.
>>
>> Reed
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
More information about the llvm-dev
mailing list