> You'll need to need to write most of the C function calls back into Ruby and have the JIT properly inline them to get equivalent performance.
What works really well for TruffleRuby etc might not work that well for a simpler optimizing compiler you could build and get merged into CRuby. LuaJIT and JSC are simpler than a lot of other "fast" JIT runtimes and that's not really the approach they take.
OMR isn't a simple optimizing compiler, its the full blown compiler suite, GC and runtime components used by OpenJ9 JVM [1] which has been in production for decades.
You're free to use the simple passes that the JIT there provides, but the more expensive optimizations are also available as the Java JIT has a tiered optimization model. [2]
All the optimizations found here [3] can be used along with the code-generator opts as well.
I guess the idea is to provide a full suite of pluggable components, pick and choose the ones that make sense for your purpose right now, and those needs can evolve over time.
OMR is a super impressive project! I spent quite a lot of time looking into Matthew Guadet and the rest of the team’s work before starting work on a tracing compiler for CRuby.
It hasn't been worked on for 3+ years now, but its an alternative to using MJIT.
You'll need to need to write most of the C function calls back into Ruby and have the JIT properly inline them to get equivalent performance.
You won't get an immediate jolt of performance but over the long tail, it will catch up.