machine constant pool/arm constant pool

I'm trying to understand how the ARm constant pool interacts with the machine constant pool.

The ARm constant pool is reading from this list of constants in the machine constant pool that
hangs off the machine function class.

The ARm Constant Island code is adding them to it's own basic blocks so they must get deleted somehow from the machine constant pool.

Does anyone understand how this works at a hight level?

I'm trying to decide for Mips if I need to also extend the machine constant pool class.