RFR: 8144704: [JVMCI] add tests for simple code installation

Roland Schatz roland.schatz at oracle.com
Tue Dec 15 17:01:26 UTC 2015


Hi,

Please review these new unittests for the JVMCI.

JIRA: https://bugs.openjdk.java.net/browse/JDK-8144704
Webrev: http://cr.openjdk.java.net/~rschatz/JDK-8144704/webrev.00/

These tests try to generate, install and execute code. In order to do 
this, they need a small macro assembler for each platform.
The TestAssembler is implemented for AMD64 and SPARC (i.e. all platforms 
that currently have the JVMCI).

The tests themselves are platform independent. They test:

- SimpleCodeInstallationTest.java: Installation and execution of a 
simple "a + b" method.
- DataPatchTest.java: Installation and execution of various different 
implementations of "return DataPatchTest.class;" methods, using all 
possible combinations of data patches (narrow/wide, oop/klass pointer, 
inline in code or through data section).
- SimpleDebugInfoTest.java: Deoptimizations to various interpreter 
states with constant/register/stack values.
- VirtualObjectDebugInfoTest.java: Deoptimization with a virtual object 
graph.

These tests are by far not complete, if we want complete coverage of all 
combinations (especially data type / native location / jvm location 
combinations in the DebugInfo), we probably need generated tests.

Aside from combination coverage, still not tested are:
- deoptimizations to more complicated VM states (e.g. while holding a 
lock, or with more than one inlined stack frame)
- safepoints and oopmaps
- invokes

Thanks,
Roland


More information about the hotspot-compiler-dev mailing list