how does llvm decide when to put something in the literal pool

For mips16, there is no simple way to create or operate on a 32 bit literal.

Basically you have to load it from memory.

So it seems like the default is that it would be in the machine constant pool but this is not the case.
The port shares things with the mips32 and mips64 port so I don't think I did anything special here.

How does llvm decide what goes in the machine constant pool and what is an immediate operand?