RFR (XXL): JEP 243: Java-Level JVM Compiler Interface

Erik Österlund erik.osterlund at lnu.se
Mon Sep 14 09:35:03 UTC 2015

Hi Christian,

It is very interesting to expose a Java-level API for the compilers, and it makes me happy to read about it.

Out of curiosity, I’m wondering two things.

1. Are there intentions to target release builds eventually, so library implementors can use custom JITs, and not just for experimenting?

2. In that case, I wonder what impact these potential library JITs will have on the GC interface/ABI. 
I assume it is intended that the already implemented GCs will be used by this new JIT. 
In that case, I assume there needs to be some kind of interface between the JIT and GC.

In particular what I am thinking about is exposing some current GC ABI assumptions including what GC barriers there could be for memory accesses (e.g. barriers only for references, not primitives), then never being able to change the such assumptions further down the road because third party libraries with custom JITs suddenly depend on previously valid ABI and compiler details that have to be set in stone for compatibility reasons.

Any comments on this? Is this an issue?


> On 14 Sep 2015, at 09:24, Christian Thalinger <christian.thalinger at oracle.com> wrote:
> The JEP itself can be found here:
> https://bugs.openjdk.java.net/browse/JDK-8062493 <https://bugs.openjdk.java.net/browse/JDK-8062493>
> Here are the webrevs:
> http://cr.openjdk.java.net/~kvn/JVMCI/webrev.top/ <http://cr.openjdk.java.net/~kvn/JVMCI/webrev.top/>
> http://cr.openjdk.java.net/~kvn/JVMCI/webrev.hotspot/ <http://cr.openjdk.java.net/~kvn/JVMCI/webrev.hotspot/>
> The change has already undergone a few iterations of internal review by different people of different teams.  Most comments and suggestions were handled accordingly.  Although there is one open item we agreed we will address after the integration of JEP 243 and that work is captured in RFE:
> https://bugs.openjdk.java.net/browse/JDK-8134994 <https://bugs.openjdk.java.net/browse/JDK-8134994>
> SQE is still working on the tests and all test tasks can be seen as sub-tasks of the JEP.
> The integration will happen under the bug number:
> https://bugs.openjdk.java.net/browse/JDK-8136421 <https://bugs.openjdk.java.net/browse/JDK-8136421>

More information about the hotspot-dev mailing list