Reini Urban
and 1 contributors

Jit the perl5 runops loop in proper execution order

It does only work yet for non-threaded simple functions! No subs, no branches.

This perl5 jitter is super-simple. The compiled optree is a linked list in memory in non-execution order, wide-spread jumps. Additionally the calls are indirect. The jitter properly aligns the run-time calls in linear linked-list "exec" order, so that the CPU can prefetch the next instructions.

The old indirect call far costs about 70 cycles, the new direct call near costs 3-5 cycles and is cached.

Speed up: TODO

Additional memory costs: TODO

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 18:

Unknown directive: =head

Around line 22:

Unknown directive: =head