where to put the constant island pass?

Currently the ARM port does constant islands on a per function basis.

I'm aware of at least one other port that does this kind of optimization on the mc layer.

To do such long/short jump and load optimizations, you don't need anything about registers or basic blocks.

So it seems this would be better because then you can pool things on a per module basis.

In the case of Mips16, the addresses or offsets into the got for functions are a common 32 bit literal and there would be a high likelihood of calling the same function multiple times in a module.

Thoughts?

Reed

ARM absolutely needs to know about control flow in that pass.

-Jim

ARM absolutely needs to know about control flow in that pass.

Why does it need to know about control flow?

I'm asking because I don't really know much about ARM and possibly Mips16 will have the same issues.

Reed