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