Hi,
As we all know, testing ARMConstantIslands is a complete nightmare because you need thousands of lines of code to even start needing it.
This patch implements an "@llvm.arm.space(i32)" intrinsic which should make that much easer. It's the CodeGen equivalent of ".zero" in assembly, and immediately makes a basic block bigger by the amount in its argument.
It's not a panacea: getting just the perfect number of instructions for the split you're attempting to create is still tricky. But it should greatly improve matters.
I'm hoping to use it to actually write some more substantial tests for the pass, but wanted to get it out there to be used by Saleem in particular.
Does it look OK? Anyone got suggestions for improvement? Or enough other uses to justify it being generic?
Cheers.
Tim.