go-jdk
go-jdk copied to clipboard
Run JVM-based code in Go efficiently
Missing features: * Strings * Modulo operator
https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.10
Our algorithm works in the simplest cases, but it does fail badly in cases where we have gotos (see #37). We could use the approach outlined in [Virtual Machine Showdown:...
I propose 3 levels: * Opt=0, no optimizations. Fastest codegen, pretty slow code. Mostly for things that are intended to be executed once. * Opt=1, basic optimizations. Very cheap optimizations...
Instead of Reg we need Reg8, Reg16, Reg32, and Reg64. Or we need to handle function args properly. If an instruction does not explicitly specify operand size, we don't know...
Let's track important optimizations list, so they don't become impossible due to our design decisions * Method inlining. * Escape analysis to allocate fewer objects on the heap. * Batched...