[LLVMdev] Reduced physical register limit in 3.1+?

Andrew Trick atrick at apple.com
Fri Nov 9 18:13:16 PST 2012

On Oct 30, 2012, at 6:18 PM, Andrew Clinton <andrew at sidefx.com> wrote:

> I noticed that in LLVM 3.0 the limit of 16K physical registers was removed, but it seems that this limit has returned in 3.1 with the use of uint16_t for register ids.  Would it be possible to re-increase this storage size to uint32_t or to change this to a typedef so that I can patch it locally?
> See related thread "Increasing TargetRegisterInfo::FirstVirtualRegister"

When the register id type was changed it obviously should have been made a typedef. I think that would be a welcome albeit disruptive patch (maybe after the release?)

I don't know the background behind the register limit or changing it, but I imagine you could have trouble with data structures and algorithms scaling > 16k regs. Are you really using the LLVM register allocator to assign these? If not, you should either stick with virtual registers or model them as memory addresses.


More information about the llvm-dev mailing list