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


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