The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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