It is not possible to run the entire VM due to lack of OS support for some features required. However, even you could run all of it, it would not yield the best performance due to control flow divergence.
Correct, since we employ Graal for parts of the compilation, we also enjoy the benefits of inlining and escape analysis. If an object is replaced by scalars then we can use it on a GPU. Otherwise (if a real object allocation is required) then the compiler will bail out and execution will continue normally on the CPU (with compiled code from Graal or C2).
We did some preliminary work on executing some parts of the interpreter on a GPU this year: https://github.com/jjfumero/jjfumero.github.io/blob/master/f...