[LLVMdev] Reduced physical register limit in 3.1+?

Andrew Trick
2012-11-10T02:13:16Z

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.

-Andy