Draft: NCG optimisation - Specialize the register allocator.
The register allocator is quite overloaded. Most importantly over the instruction set (instr) and the bitmap to keep track of free registers (freeRegs).
I added a fair few number of INLINEABLE pragmas which now allows us to specialize the allocator in the modules defining the NcgImpl for the varius backends.
Each NcgImpl will then carry around a function that is the specialized allocator for that particular backend.
Edited by Andreas Klebinger