[LLVMdev] getMinimalPhysRegClass

Jakob Stoklund Olesen stoklund at 2pi.dk
Mon May 14 14:42:45 PDT 2012


On May 14, 2012, at 2:28 PM, reed kotler wrote:

> I'm not using getMinimalPhysRegClass. Some target independent code is using it.

Probably PEI.

> It makes trouble for us and I would like to submit a patch to make it a virtual function so that I can override it and make it meaningful for Mips, as long as this method still exists.
> 
> I want to add another register class for Mips16 and don't want to define a Mips16 set of registers because in reality there is no such thing; MIPS16 is an application extension that can exist for either Mips32 or Mips64 which uses a different instruction encoding.
> 
> When I'm compiling for -mips23 -nomips16 I don't want the mips16 register class being passed to any functions which take such a register class parameter.
> 
> As it is right now, it sees mips16 as the minimal size class and passes it when I'm compiling for -mips32 -nomips16

The ARM tGPR register class is the same. It has no business showing up in non-Thumb code, but it is completely harmless when it does.

My best advice to you is don't try to swim upstream. The Liskov substitution principle for register classes is deeply ingrained in the LLVM register allocators.

/jakob




More information about the llvm-dev mailing list