Mi viene in mente l'allocazione del registro.
Secondo wikipedia :
Graph coloring allocators produce efficient code, but their allocation
time is high. In cases of static compilation, allocation time is not a
significant concern. In cases of dynamic compilation, such as
just-in-time (JIT) compilers, fast register allocation is important.
An efficient technique proposed by Poletto and Sarkar is linear scan
allocation. This technique requires only a single pass over the list
of variable live ranges. Ranges with short lifetimes are assigned to
registers, whereas those with long lifetimes tend to be spilled, or
reside in memory. The results are on average only 12% less efficient
than graph coloring allocators.
Inoltre, di recente ho trovato una domanda di stackoverflow su un'ottimizzazione che il compilatore JIT non ha fare. Non sei sicuro che il tempo di compilazione sia il motivo, ma potrebbe comunque valerne la pena.