RFR (S) 8217714: [lworld] Support for substitutability checks in interpreter
david.simms at oracle.com
Mon May 27 08:17:48 UTC 2019
Here is an "isSubstitutable()" implementation for if_acmpeq/if_acmpne in
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
More information about the valhalla-dev