The problem with using a C compiler for JIT is it would have to be linked into the interp. Sure the opcode tree can be unrolled and runops removed, but your end result is still not better than B::CC since the exact same opcodes are being called with the same amount of cpu opcodes executing more or less.