JIT has big improvement in integer related programs but did lack to improve real world i.e. PMC using apps.

I wanted to test, how much we can gain, by doing vtable calls directly in JIT and did optimize 4 ops (dec_p, inc_p, if_p_ic, unless_p_ic) (which happen to be used in mops_p.pasm's MOPS loop) - and the result really is impressiv: 3,7 times faster execution.

The generated code replaces the call to Parrot_jit_{normal,cpfp}_op by code that calls the vtable function directly, thus saving one funtion call plus recalculating the address of parrot registers.

By defining macros to the standard functions, the code should be compatible with different architectures, though I couldn't test this.

Have fun,
leo

Reply via email to