RFR (S) 8217714: [lworld] Support for substitutability checks in interpreter
David Simms
david.simms at oracle.com
Mon May 27 08:17:48 UTC 2019
Greetings,
Here is an "isSubstitutable()" implementation for if_acmpeq/if_acmpne in
the interpreter.
Relatively straight forward, a few points of interest:
* Switch default "ACmpOnValues" mode to 3 (isSubstitutable())
o Found an issue with "TestLWorld", adjust it to continue with
mode 2, (bug filed for mode 3, JDK-8224818).
* "TemplateTable::invoke_is_substitutable": I had experimented with
generating call and return directly from the interpreter.
o The net gain for an extremely tight micro-benchmark, only
calling if_acmpeq, was 3%. The vagueness of the hand rolled
macro for the return did seem worth the future maintenance
headaches for margin gain, it got convert to a simpler
interpreter runtime call.
o One could argue that "TemplateTable::invoke_is_substitutable" is
not worth it's own function
* Need to be careful using "==" and "!=" in the Java implementation,
so I made a slight rearrangement
Bug: https://bugs.openjdk.java.net/browse/JDK-8217714
Webrev: http://cr.openjdk.java.net/~dsimms/valhalla/8217714/
More information about the valhalla-dev
mailing list